From cfd06f5755b3b820b6132583431f597670d89e5f Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sat, 19 Apr 2025 20:44:23 +0300 Subject: [PATCH] Filtered lores supported again. --- drawing.cpp | 48 +- genlinetoscr.cpp | 362 +- linetoscr_aga_fast.cpp | 2757 ++- linetoscr_aga_fm0.cpp | 10302 ++++++++--- linetoscr_aga_fm0_genlock.cpp | 2346 ++- linetoscr_aga_fm1.cpp | 19674 +++++++++++++++----- linetoscr_aga_fm1_genlock.cpp | 9050 ++++++--- linetoscr_aga_fm2.cpp | 26549 ++++++++++++++++++++++----- linetoscr_aga_fm2_genlock.cpp | 11905 +++++++++--- linetoscr_aga_genlock_fast.cpp | 3123 +++- linetoscr_ecs_fast.cpp | 2485 ++- linetoscr_ecs_genlock_fast.cpp | 2905 ++- linetoscr_ecs_shres.cpp | 6 + linetoscr_ocs_ecs.cpp | 3511 +++- linetoscr_ocs_ecs_genlock.cpp | 1239 +- linetoscr_ocs_ecs_ntsc.cpp | 3527 +++- linetoscr_ocs_ecs_ntsc_genlock.cpp | 1255 +- 17 files changed, 81055 insertions(+), 19989 deletions(-) diff --git a/drawing.cpp b/drawing.cpp index d8c8ea87..b7d3464b 100644 --- a/drawing.cpp +++ b/drawing.cpp @@ -5090,6 +5090,15 @@ static void emulate_black_level_calibration(uae_u32 *b1, uae_u32 *b2, uae_u32 *d } } +static uae_u32 filter_pixel(uae_u32 p1, uae_u32 p2) +{ + uae_u32 v = 0; + v |= ((((p1 >> 16) & 0xff) + ((p2 >> 16) & 0xff)) / 2) << 16; + v |= ((((p1 >> 8) & 0xff) + ((p2 >> 8) & 0xff)) / 2) << 8; + v |= ((((p1 >> 0) & 0xff) + ((p2 >> 0) & 0xff)) / 2) << 0; + return v; +} + // ultra extreme debug pixel patterns static uint32_t decode_denise_specials_debug(uint32_t v, int inc) { @@ -5642,12 +5651,26 @@ static void select_lts(void) int planes = denise_max_planes > 4 ? 1 : 0; int oddeven = denise_max_odd_even ? 1 : 0; int idx = (oddeven) + (bm * 2) + (planes * 2 * 5) + (spr * 2 * 5 * 2) + (denise_res * 2 * 5 * 2 * 2) + (hresolution * 2 * 5 * 2 * 2 * 3) + (bpldat_fmode * 2 * 5 * 2 * 2 * 3 * 3); - lts = linetoscr_aga_genlock_funcs[idx]; + if (currprefs.gfx_lores_mode) { + lts = linetoscr_aga_genlock_funcs_filtered[idx]; + if (!lts) { + lts = linetoscr_aga_genlock_funcs[idx]; + } + } else { + lts = linetoscr_aga_genlock_funcs[idx]; + } } else { int planes = denise_max_planes > 0 ? (denise_max_planes - 1) / 2 : 0; int oddeven = denise_max_odd_even ? 1 : 0; int idx = (oddeven) + (bm * 2) + (planes * 2 * 5) + (spr * 2 * 5 * 4) + (denise_res * 2 * 5 * 4 * 2) + (hresolution * 2 * 5 * 4 * 2 * 3) + (bpldat_fmode * 2 * 5 * 4 * 2 * 3 * 3); - lts = linetoscr_aga_funcs[idx]; + if (currprefs.gfx_lores_mode) { + lts = linetoscr_aga_funcs_filtered[idx]; + if (!lts) { + lts = linetoscr_aga_funcs[idx]; + } + } else { + lts = linetoscr_aga_funcs[idx]; + } } } else if (ecs_denise && denise_res == RES_SUPERHIRES) { @@ -5699,7 +5722,14 @@ static void select_lts(void) } int oddeven = denise_max_odd_even; int idx = (oddeven) + (bm * 2) + (planes * 2 * 4) + (spr * 2 * 4 * 4) + (denise_res * 2 * 4 * 4 * 2) + (hresolution * 2 * 4 * 4 * 2 * 2); - lts = strlong_emulation ? linetoscr_ecs_ntsc_funcs[idx] : linetoscr_ecs_funcs[idx]; + if (currprefs.gfx_lores_mode) { + lts = strlong_emulation ? linetoscr_ecs_ntsc_funcs_filtered[idx] : linetoscr_ecs_funcs_filtered[idx]; + if (!lts) { + lts = strlong_emulation ? linetoscr_ecs_ntsc_funcs[idx] : linetoscr_ecs_funcs[idx]; + } + } else { + lts = strlong_emulation ? linetoscr_ecs_ntsc_funcs[idx] : linetoscr_ecs_funcs[idx]; + } } } @@ -6482,14 +6512,26 @@ void draw_denise_bitplane_line_fast(int gfx_ypos, enum nln_how how, struct lines if (aga_mode) { if (need_genlock_data) { ltsf = linetoscr_aga_genlock_fast_funcs[ltsidx]; + if (currprefs.gfx_lores_mode && linetoscr_aga_genlock_fast_funcs_filtered[ltsidx]) { + ltsf = linetoscr_aga_genlock_fast_funcs_filtered[ltsidx]; + } } else { ltsf = linetoscr_aga_fast_funcs[ltsidx]; + if (currprefs.gfx_lores_mode && linetoscr_aga_fast_funcs_filtered[ltsidx]) { + ltsf = linetoscr_aga_fast_funcs_filtered[ltsidx]; + } } } else { if (need_genlock_data) { ltsf = linetoscr_ecs_genlock_fast_funcs[ltsidx]; + if (currprefs.gfx_lores_mode && linetoscr_ecs_genlock_fast_funcs_filtered[ltsidx]) { + ltsf = linetoscr_ecs_genlock_fast_funcs_filtered[ltsidx]; + } } else { ltsf = linetoscr_ecs_fast_funcs[ltsidx]; + if (currprefs.gfx_lores_mode && linetoscr_ecs_fast_funcs_filtered[ltsidx]) { + ltsf = linetoscr_ecs_fast_funcs_filtered[ltsidx]; + } } } diff --git a/genlinetoscr.cpp b/genlinetoscr.cpp index 317f4349..94902b55 100644 --- a/genlinetoscr.cpp +++ b/genlinetoscr.cpp @@ -15,11 +15,11 @@ static FILE *outfile; static int outfile_indent = 0; -static int aga, outres, res, planes, modes, bplfmode, sprres, oddeven, ecsshres, genlock, ntsc; +static int aga, outres, res, planes, modes, bplfmode, sprres, oddeven, ecsshres, genlock, ntsc, filtered; static int isbuf2 = 0; static int maxplanes = 8; -static char funcnames[500000]; -static char *funcnamep; +static char funcnames[500000], funcnamesf[500000]; +static char *funcnamep, *funcnamepf; typedef enum { @@ -513,6 +513,9 @@ static void gen_sprmerge(int off, int k, int dbl) for (int i = 0; i < dbl - 1; i++) { outf(" dpix_val%d = dpix_val%d;", off + i + 1, off); } + if (filtered) { + outf(" dpix_val%d = dpix_val%d;", off + 1, off); + } outf(" }"); outf("}"); } @@ -558,22 +561,41 @@ static void gen_pix_aga(void) if (res > outres) { for (int i = 0; i < (1 << (res - outres)) - 1; i++) { off++; - // HAM special case, all pixels must be processed. - if (modes == CMODE_HAM) { + if (filtered) { gen_prepix(off); outf("if (!denise_blank_active) {"); + if (genlock) { + outf("gpix%d = get_genlock_transparency_border();", off); + } outf(" dpix_val%d = bordercolor;", off); outf(" if (denise_hdiw && bpl1dat_trigger) {"); outf(" pix%d = loaded_pixs[%d];", off, off); - outf(" decode_ham_pixel_aga(pix%d);", off); - outf("}"); + outf(" clxdat |= bplcoltable[pix%d];", off); + gen_bplpixmode_aga(off); + outf(" }"); outf(" last_bpl_pix = pix%d;", off); outf("}"); gen_shiftbpl_hr(maxplanes); gen_copybpl_hr(off); outf("loaded_pixs[%d] = loaded_pix;", off); } else { - gen_shiftbpl(maxplanes); + // HAM special case, all pixels must be processed. + if (modes == CMODE_HAM) { + gen_prepix(off); + outf("if (!denise_blank_active) {"); + outf(" dpix_val%d = bordercolor;", off); + outf(" if (denise_hdiw && bpl1dat_trigger) {"); + outf(" pix%d = loaded_pixs[%d];", off, off); + outf(" decode_ham_pixel_aga(pix%d);", off); + outf("}"); + outf(" last_bpl_pix = pix%d;", off); + outf("}"); + gen_shiftbpl_hr(maxplanes); + gen_copybpl_hr(off); + outf("loaded_pixs[%d] = loaded_pix;", off); + } else { + gen_shiftbpl(maxplanes); + } } } off++; @@ -591,14 +613,15 @@ static void gen_pix_aga(void) if (sprres >= 0) { gen_sprmerge(off, off, 0); } - + if (filtered) { + outf("dpix_val%d = filter_pixel(dpix_val%d, dpix_val%d);", off, off, off + 1); + } if (ntsc) { outf("dtbuf[h][%d] = dpix_val%d;", off, off); if (genlock) { outf("dtgbuf[h][%d] = gpix%d;", off, off); } } - if (res > outres) { for (int i = 0; i < (1 << (res - outres - 1)); i++) { off++; @@ -736,6 +759,11 @@ static void gen_pix(void) if (res > outres) { off <<= (res - outres); } + + if (filtered) { + outf("dpix_val%d = filter_pixel(dpix_val%d, dpix_val%d);", off, off, off + 1); + } + if (sprt[i]) { if (res == 0) { gen_sprmerge(off, 0, outres == 0 ? 0 : (outres == 1 ? 2 : 4)); @@ -810,7 +838,7 @@ static bool gen_head(void) { char funcname[200]; - sprintf(funcname, "lts_%s_%s_%s%d_p%d_i%s_d%s%s%s%s", + sprintf(funcname, "lts_%s_%s_%s%d_p%d_i%s_d%s%s%s%s%s", aga ? "aga" : "ecs", bplfmode == 0 ? "fm0" : (bplfmode == 1 ? "fm1" : "fm2"), modes == 0 ? "n" : (modes == 1 ? "dpf" : (modes == 2 ? "ehb" : (modes == 4 ? "kehb" : "ham"))), @@ -820,13 +848,34 @@ static bool gen_head(void) outres == 0 ? "lores" : (outres == 1 ? "hires" : "shres"), sprres < 0 ? "" : "_spr", ntsc > 0 ? "_ntsc" : "", + filtered > 0 ? "_filtered" : "", genlock ? "_genlock" : ""); - strcpy(funcnamep, funcname); - funcnamep += strlen(funcnamep) + 1; - *funcnamep = 0; + + if (!filtered) { + strcpy(funcnamep, funcname); + funcnamep += strlen(funcnamep) + 1; + *funcnamep = 0; + } else { + if (res <= outres) { + strcpy(funcnamepf, " "); + funcnamepf += strlen(funcnamepf) + 1; + *funcnamepf = 0; + } else { + strcpy(funcnamepf, funcname); + funcnamepf += strlen(funcnamepf) + 1; + *funcnamepf = 0; + } + } + outf("static void %s(void)", funcname); outf("{"); + if (filtered) { + if (res <= outres) { + return false; + } + } + // shres on lores is useless if (res == 2 && outres == 0) { return false; @@ -871,26 +920,102 @@ static bool gen_head(void) static bool gen_fasthead(void) { char funcname[200]; - sprintf(funcname, "lts_%s_%s_i%s_d%s_%s%s", + sprintf(funcname, "lts_%s_%s_i%s_d%s_%s%s%s", aga ? "aga" : "ecs", modes == 0 ? "n" : (modes == 1 ? "dpf" : (modes == 2 ? "ehb" : (modes == 4 ? "kehb" : "ham"))), res == 0 ? "lores" : (res == 1 ? "hires" : "shres"), outres == 0 ? "lores" : (outres == 1 ? "hires" : "shres"), isbuf2 ? "b2" : "b1", + filtered > 0 ? "_filtered" : "", genlock ? "_genlock" : ""); - strcpy(funcnamep, funcname); - funcnamep += strlen(funcnamep) + 1; - *funcnamep = 0; + + if (!filtered) { + strcpy(funcnamep, funcname); + funcnamep += strlen(funcnamep) + 1; + *funcnamep = 0; + } else { + if (res <= outres) { + strcpy(funcnamepf, " "); + funcnamepf += strlen(funcnamepf) + 1; + *funcnamepf = 0; + } else { + strcpy(funcnamepf, funcname); + funcnamepf += strlen(funcnamepf) + 1; + *funcnamepf = 0; + } + } + outf("static void %s(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset," "int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls)", funcname); outf("{"); + // shres on lores is useless if (res == 2 && outres == 0) { return false; } + + if (filtered) { + if (res <= outres) { + return false; + } + } + return true; } +static void gen_fastdraw_drawmode_ecs(char *colname) +{ + if (modes == CMODE_DUALPF) { + outf("{"); + outf("uae_u8 dpval = dpf_lookup[c];"); + outf("%s = xcolors[colors_ocs[dpval]];", colname); + outf("}"); + } else if (modes == CMODE_HAM) { + outf("%s = decode_ham_pixel_fast(c, colors_ocs);", colname); + } else if (modes == CMODE_EXTRAHB_ECS_KILLEHB) { + outf("%s = xcolors[colors_ocs[c & 31]];", colname); + } else if (modes == CMODE_EXTRAHB) { + outf("c &= bplehb_mask;"); + outf("if (c <= 31) {"); + outf(" %s = xcolors[colors_ocs[c]];", colname); + outf("} else {"); + outf(" %s = xcolors[(colors_ocs[c - 32] >> 1) & 0x777];", colname); + outf("}"); + } else { + outf("%s = xcolors[colors_ocs[c]];", colname); + } +} + +static void gen_fastdraw_drawmode_aga(char *colname) +{ + if (modes == CMODE_DUALPF) { + outf("{"); + outf("uae_u8 dpval = dpf_lookup[c];"); + outf("if (dpf_lookup_no[c]) {"); + outf(" dpval += dblpfofs[bpldualpf2of];"); + outf("}"); + outf("dpval ^= bxor;"); + outf("%s = colors_aga[dpval];", colname); + outf("}"); + } else if (modes == CMODE_HAM) { + outf("%s = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga);", colname); + } else if (modes == CMODE_EXTRAHB_ECS_KILLEHB) { + outf("c ^= bxor;"); + outf("%s = colors_aga[c & 31];", colname); + } else if (modes == CMODE_EXTRAHB) { + outf("c ^= bxor;"); + outf("if (c & 0x20) {"); + outf(" uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f;"); + outf(" %s = CONVERT_RGB(v);", colname); + outf("} else {"); + outf(" %s = colors_aga[c];", colname); + outf("}"); + } else { + outf("c ^= bxor;"); + outf("%s = colors_aga[c];", colname); + } +} + static void gen_fastdraw_mode(int off, int total) { int doubling = outres - res; @@ -898,33 +1023,21 @@ static void gen_fastdraw_mode(int off, int total) if (aga) { outf("c = *cp;"); outf("clxdat |= bplcoltable[c];"); - outf("cp += cpadds[%d];", off); - if (modes == CMODE_DUALPF) { - outf("{"); - outf("uae_u8 dpval = dpf_lookup[c];"); - outf("if (dpf_lookup_no[c]) {"); - outf(" dpval += dblpfofs[bpldualpf2of];"); - outf("}"); - outf("dpval ^= bxor;"); - outf("col = colors_aga[dpval];"); - outf("}"); - } else if (modes == CMODE_HAM) { - outf("col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga);"); - } else if (modes == CMODE_EXTRAHB_ECS_KILLEHB) { - outf("c ^= bxor;"); - outf("col = colors_aga[c & 31];"); - } else if (modes == CMODE_EXTRAHB) { - outf("c ^= bxor;"); - outf("if (c & 0x20) {"); - outf(" uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f;"); - outf(" col = CONVERT_RGB(v);"); - outf("} else {"); - outf(" col = colors_aga[c];"); - outf("}"); - } else { - outf("c ^= bxor;"); - outf("col = colors_aga[c];"); + gen_fastdraw_drawmode_aga("col"); + if (doubling < 0) { + outf("c = cp[1];"); + outf("clxdat |= bplcoltable[c];"); + if (filtered) { + outf("uae_u32 colf;"); + gen_fastdraw_drawmode_aga("colf"); + outf("col = filter_pixel(col, colf);"); + } else { + if (modes == CMODE_HAM) { + outf("decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga);"); + } + } } + outf("cp += cpadds[%d];", off); } else if (res == 2) { // ECS shres outf("uae_u8 c0 = *cp++;"); outf("uae_u8 c1 = *cp++;"); @@ -961,28 +1074,19 @@ static void gen_fastdraw_mode(int off, int total) } else { outf("c = *cp;"); outf("clxdat |= bplcoltable[c];"); + gen_fastdraw_drawmode_ecs("col"); + if (doubling < 0) { + outf("c = cp[1];"); + outf("clxdat |= bplcoltable[c];"); + if (filtered) { + outf("uae_u32 colf;"); + gen_fastdraw_drawmode_ecs("colf"); + outf("col = filter_pixel(col, colf);"); + } + } if (off == total - 1) { outf("cp += cpaddv;"); } - if (modes == CMODE_DUALPF) { - outf("{"); - outf("uae_u8 dpval = dpf_lookup[c];"); - outf("col = xcolors[colors_ocs[dpval]];"); - outf("}"); - } else if (modes == CMODE_HAM) { - outf("col = decode_ham_pixel_fast(c, colors_ocs);"); - } else if (modes == CMODE_EXTRAHB_ECS_KILLEHB) { - outf("col = xcolors[colors_ocs[c & 31]];"); - } else if (modes == CMODE_EXTRAHB) { - outf("c &= bplehb_mask;"); - outf("if (c <= 31) {"); - outf(" col = xcolors[colors_ocs[c]];"); - outf("} else {"); - outf(" col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777];"); - outf("}"); - } else { - outf("col = xcolors[colors_ocs[c]];"); - } } outf("*buf1++ = col;"); if (isbuf2) { @@ -1243,6 +1347,22 @@ static void write_funcs(const char *name) funcnamep = funcnames; *funcnamep = 0; + + outf("static LINETOSRC_FUNC %s_filtered[] = {", name); + p = funcnamesf; + while (*p) { + if (p[0] == ' ') { + outf("NULL,"); + } else { + outf("%s,", p); + } + p += strlen(p) + 1; + } + outf("NULL"); + outf("};"); + + funcnamepf = funcnamesf; + *funcnamepf = 0; } static void write_funcs_fast(const char *name) @@ -1258,6 +1378,22 @@ static void write_funcs_fast(const char *name) funcnamep = funcnames; *funcnamep = 0; + + outf("static LINETOSRC_FUNCF %s_filtered[] = {", name); + p = funcnamesf; + while (*p) { + if (p[0] == ' ') { + outf("NULL,"); + } else { + outf("%s,", p); + } + p += strlen(p) + 1; + } + outf("NULL"); + outf("};"); + + funcnamepf = funcnamesf; + *funcnamepf = 0; } int main (int argc, char *argv[]) @@ -1270,6 +1406,8 @@ int main (int argc, char *argv[]) funcnamep = funcnames; *funcnamep = 0; + funcnamepf = funcnamesf; + *funcnamepf = 0; aga = 1; oddeven = 1; genlock = 0; @@ -1297,6 +1435,17 @@ int main (int argc, char *argv[]) gen_null(); } gen_tail(); + filtered = 1; + if (gen_head()) { + gen_start(); + gen_init(); + gen_pix_aga(); + gen_end(); + } else { + gen_null(); + } + gen_tail(); + filtered = 0; } } } @@ -1331,6 +1480,17 @@ int main (int argc, char *argv[]) gen_null(); } gen_tail(); + filtered = 1; + if (gen_head()) { + gen_start(); + gen_init(); + gen_pix_aga(); + gen_end(); + } else { + gen_null(); + } + gen_tail(); + filtered = 0; } } } @@ -1367,6 +1527,17 @@ int main (int argc, char *argv[]) gen_null(); } gen_tail(); + filtered = 1; + if (gen_head()) { + gen_start(); + gen_init(); + gen_pix(); + gen_end(); + } else { + gen_null(); + } + gen_tail(); + filtered = 0; } } } @@ -1401,6 +1572,17 @@ int main (int argc, char *argv[]) gen_null(); } gen_tail(); + filtered = 1; + if (gen_head()) { + gen_start(); + gen_init(); + gen_pix(); + gen_end(); + } else { + gen_null(); + } + gen_tail(); + filtered = 0; } } } @@ -1434,6 +1616,17 @@ int main (int argc, char *argv[]) gen_null(); } gen_tail(); + filtered = 1; + if (gen_head()) { + gen_start(); + gen_init(); + gen_pix(); + gen_end(); + } else { + gen_null(); + } + gen_tail(); + filtered = 0; } } } @@ -1468,6 +1661,17 @@ int main (int argc, char *argv[]) gen_null(); } gen_tail(); + filtered = 1; + if (gen_head()) { + gen_start(); + gen_init(); + gen_pix(); + gen_end(); + } else { + gen_null(); + } + gen_tail(); + filtered = 0; } } } @@ -1584,6 +1788,14 @@ int main (int argc, char *argv[]) gen_null(); } gen_tail(); + filtered = 1; + if (gen_fasthead()) { + gen_fastdraw(); + } else { + gen_null(); + } + gen_tail(); + filtered = 0; } } } @@ -1602,6 +1814,14 @@ int main (int argc, char *argv[]) gen_null(); } gen_tail(); + filtered = 1; + if (gen_fasthead()) { + gen_fastdraw(); + } else { + gen_null(); + } + gen_tail(); + filtered = 0; } } } @@ -1624,6 +1844,14 @@ int main (int argc, char *argv[]) gen_null(); } gen_tail(); + filtered = 1; + if (gen_fasthead()) { + gen_fastdraw(); + } else { + gen_null(); + } + gen_tail(); + filtered = 0; } } } @@ -1642,6 +1870,14 @@ int main (int argc, char *argv[]) gen_null(); } gen_tail(); + filtered = 1; + if (gen_fasthead()) { + gen_fastdraw(); + } else { + gen_null(); + } + gen_tail(); + filtered = 0; } } } diff --git a/linetoscr_aga_fast.cpp b/linetoscr_aga_fast.cpp index 648c35ce..c33c1ddd 100644 --- a/linetoscr_aga_fast.cpp +++ b/linetoscr_aga_fast.cpp @@ -40,9 +40,9 @@ static void lts_aga_n_ilores_dlores_b1(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -51,6 +51,10 @@ static void lts_aga_n_ilores_dlores_b1(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } +static void lts_aga_n_ilores_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_dpf_ilores_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -87,7 +91,6 @@ static void lts_aga_dpf_ilores_dlores_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -96,6 +99,7 @@ static void lts_aga_dpf_ilores_dlores_b1(int draw_start, int draw_end, int draw_ dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -104,6 +108,10 @@ static void lts_aga_dpf_ilores_dlores_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_aga_dpf_ilores_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_ehb_ilores_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -140,7 +148,6 @@ static void lts_aga_ehb_ilores_dlores_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -148,6 +155,7 @@ static void lts_aga_ehb_ilores_dlores_b1(int draw_start, int draw_end, int draw_ } else { col = colors_aga[c]; } + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -156,6 +164,10 @@ static void lts_aga_ehb_ilores_dlores_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_aga_ehb_ilores_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_ham_ilores_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -192,8 +204,8 @@ static void lts_aga_ham_ilores_dlores_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -202,6 +214,10 @@ static void lts_aga_ham_ilores_dlores_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_aga_ham_ilores_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_kehb_ilores_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -238,9 +254,9 @@ static void lts_aga_kehb_ilores_dlores_b1(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -249,6 +265,10 @@ static void lts_aga_kehb_ilores_dlores_b1(int draw_start, int draw_end, int draw cnt += bufaddv; } } +static void lts_aga_kehb_ilores_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_n_ihires_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -285,9 +305,11 @@ static void lts_aga_n_ihires_dlores_b1(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c]; + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -296,7 +318,7 @@ static void lts_aga_n_ihires_dlores_b1(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_aga_dpf_ihires_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ihires_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -332,15 +354,15 @@ static void lts_aga_dpf_ihires_dlores_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + colf = colors_aga[c]; + col = filter_pixel(col, colf); cp += cpadds[0]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -349,7 +371,7 @@ static void lts_aga_dpf_ihires_dlores_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ehb_ihires_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ihires_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -385,14 +407,17 @@ static void lts_aga_ehb_ihires_dlores_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -401,7 +426,7 @@ static void lts_aga_ehb_ihires_dlores_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ham_ihires_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ihires_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -437,8 +462,27 @@ static void lts_aga_ham_ihires_dlores_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + colf = colors_aga[dpval]; + } + col = filter_pixel(col, colf); cp += cpadds[0]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -447,7 +491,7 @@ static void lts_aga_ham_ihires_dlores_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_kehb_ihires_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ihires_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -483,9 +527,16 @@ static void lts_aga_kehb_ihires_dlores_b1(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; - col = colors_aga[c & 31]; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -494,27 +545,7 @@ static void lts_aga_kehb_ihires_dlores_b1(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_aga_n_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_aga_dpf_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_aga_ehb_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_aga_ham_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_aga_kehb_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_aga_n_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ihires_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -539,10 +570,9 @@ static void lts_aga_n_ilores_dhires_b1(int draw_start, int draw_end, int draw_st if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { @@ -551,15 +581,25 @@ static void lts_aga_n_ilores_dhires_b1(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; - col = colors_aga[c]; - *buf1++ = col; - c = *cp; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + c = cp[1]; clxdat |= bplcoltable[c]; - cp += cpadds[1]; + uae_u32 colf; c ^= bxor; - col = colors_aga[c]; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + colf = CONVERT_RGB(v); + } else { + colf = colors_aga[c]; + } + col = filter_pixel(col, colf); + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -568,7 +608,7 @@ static void lts_aga_n_ilores_dhires_b1(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_aga_dpf_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ihires_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -593,10 +633,9 @@ static void lts_aga_dpf_ilores_dhires_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { @@ -605,27 +644,11 @@ static void lts_aga_dpf_ilores_dhires_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } - *buf1++ = col; - c = *cp; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + c = cp[1]; clxdat |= bplcoltable[c]; - cp += cpadds[1]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } + decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -634,7 +657,7 @@ static void lts_aga_dpf_ilores_dhires_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ehb_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ihires_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -659,10 +682,9 @@ static void lts_aga_ehb_ilores_dhires_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { @@ -671,25 +693,13 @@ static void lts_aga_ehb_ilores_dhires_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; - } - *buf1++ = col; - c = *cp; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + c = cp[1]; clxdat |= bplcoltable[c]; - cp += cpadds[1]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; - } + uae_u32 colf; + colf = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + col = filter_pixel(col, colf); + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -698,7 +708,7 @@ static void lts_aga_ehb_ilores_dhires_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ham_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ihires_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -723,10 +733,9 @@ static void lts_aga_ham_ilores_dhires_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { @@ -735,13 +744,11 @@ static void lts_aga_ham_ilores_dhires_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); - *buf1++ = col; - c = *cp; + c ^= bxor; + col = colors_aga[c & 31]; + c = cp[1]; clxdat |= bplcoltable[c]; - cp += cpadds[1]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -750,7 +757,7 @@ static void lts_aga_ham_ilores_dhires_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_kehb_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ihires_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -775,10 +782,9 @@ static void lts_aga_kehb_ilores_dhires_b1(int draw_start, int draw_end, int draw if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { @@ -787,15 +793,15 @@ static void lts_aga_kehb_ilores_dhires_b1(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c & 31]; - *buf1++ = col; - c = *cp; + c = cp[1]; clxdat |= bplcoltable[c]; - cp += cpadds[1]; + uae_u32 colf; c ^= bxor; - col = colors_aga[c & 31]; + colf = colors_aga[c & 31]; + col = filter_pixel(col, colf); + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -804,7 +810,47 @@ static void lts_aga_kehb_ilores_dhires_b1(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_aga_n_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ishres_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ishres_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ishres_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ishres_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ishres_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -829,9 +875,10 @@ static void lts_aga_n_ihires_dhires_b1(int draw_start, int draw_end, int draw_st if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; + buf1 += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; } } } else { @@ -840,9 +887,15 @@ static void lts_aga_n_ihires_dhires_b1(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; cp += cpadds[0]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[1]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -851,7 +904,11 @@ static void lts_aga_n_ihires_dhires_b1(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_aga_dpf_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ilores_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -876,9 +933,10 @@ static void lts_aga_dpf_ihires_dhires_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; + buf1 += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; } } } else { @@ -887,7 +945,18 @@ static void lts_aga_dpf_ihires_dhires_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } cp += cpadds[0]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -896,6 +965,7 @@ static void lts_aga_dpf_ihires_dhires_b1(int draw_start, int draw_end, int draw_ dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[1]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -904,7 +974,11 @@ static void lts_aga_dpf_ihires_dhires_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ehb_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ilores_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -929,9 +1003,10 @@ static void lts_aga_ehb_ihires_dhires_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; + buf1 += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; } } } else { @@ -940,7 +1015,17 @@ static void lts_aga_ehb_ihires_dhires_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } cp += cpadds[0]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -948,6 +1033,7 @@ static void lts_aga_ehb_ihires_dhires_b1(int draw_start, int draw_end, int draw_ } else { col = colors_aga[c]; } + cp += cpadds[1]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -956,7 +1042,11 @@ static void lts_aga_ehb_ihires_dhires_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ham_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ilores_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -981,9 +1071,10 @@ static void lts_aga_ham_ihires_dhires_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; + buf1 += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; } } } else { @@ -992,8 +1083,13 @@ static void lts_aga_ham_ihires_dhires_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); cp += cpadds[0]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[1]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -1002,7 +1098,11 @@ static void lts_aga_ham_ihires_dhires_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_kehb_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ilores_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1027,9 +1127,10 @@ static void lts_aga_kehb_ihires_dhires_b1(int draw_start, int draw_end, int draw if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; + buf1 += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; } } } else { @@ -1038,9 +1139,15 @@ static void lts_aga_kehb_ihires_dhires_b1(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; cp += cpadds[0]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[1]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -1049,7 +1156,11 @@ static void lts_aga_kehb_ihires_dhires_b1(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_aga_n_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ilores_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1085,9 +1196,9 @@ static void lts_aga_n_ishres_dhires_b1(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -1096,7 +1207,11 @@ static void lts_aga_n_ishres_dhires_b1(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_aga_dpf_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ihires_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1132,7 +1247,6 @@ static void lts_aga_dpf_ishres_dhires_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -1141,6 +1255,7 @@ static void lts_aga_dpf_ishres_dhires_b1(int draw_start, int draw_end, int draw_ dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -1149,7 +1264,11 @@ static void lts_aga_dpf_ishres_dhires_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ehb_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ihires_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1185,7 +1304,6 @@ static void lts_aga_ehb_ishres_dhires_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -1193,6 +1311,7 @@ static void lts_aga_ehb_ishres_dhires_b1(int draw_start, int draw_end, int draw_ } else { col = colors_aga[c]; } + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -1201,7 +1320,11 @@ static void lts_aga_ehb_ishres_dhires_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ham_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ihires_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1237,8 +1360,8 @@ static void lts_aga_ham_ishres_dhires_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -1247,7 +1370,11 @@ static void lts_aga_ham_ishres_dhires_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_kehb_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ihires_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1283,9 +1410,9 @@ static void lts_aga_kehb_ishres_dhires_b1(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -1294,7 +1421,11 @@ static void lts_aga_kehb_ishres_dhires_b1(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_aga_n_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ihires_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1319,12 +1450,9 @@ static void lts_aga_n_ilores_dshres_b1(int draw_start, int draw_end, int draw_st if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { @@ -1333,27 +1461,11 @@ static void lts_aga_n_ilores_dshres_b1(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - col = colors_aga[c]; - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; - c ^= bxor; - col = colors_aga[c]; - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[2]; c ^= bxor; col = colors_aga[c]; - *buf1++ = col; - c = *cp; + c = cp[1]; clxdat |= bplcoltable[c]; - cp += cpadds[3]; - c ^= bxor; - col = colors_aga[c]; + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -1362,7 +1474,7 @@ static void lts_aga_n_ilores_dshres_b1(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_aga_dpf_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ishres_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1387,12 +1499,9 @@ static void lts_aga_dpf_ilores_dshres_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { @@ -1401,51 +1510,15 @@ static void lts_aga_dpf_ilores_dshres_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[2]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } - *buf1++ = col; - c = *cp; + c ^= bxor; + col = colors_aga[c]; + c = cp[1]; clxdat |= bplcoltable[c]; - cp += cpadds[3]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } + uae_u32 colf; + c ^= bxor; + colf = colors_aga[c]; + col = filter_pixel(col, colf); + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -1454,7 +1527,7 @@ static void lts_aga_dpf_ilores_dshres_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ehb_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1479,12 +1552,9 @@ static void lts_aga_ehb_ilores_dshres_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { @@ -1493,47 +1563,17 @@ static void lts_aga_ehb_ilores_dshres_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; - } - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; - } - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[2]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; } - *buf1++ = col; - c = *cp; + c = cp[1]; clxdat |= bplcoltable[c]; - cp += cpadds[3]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; - } + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -1542,7 +1582,7 @@ static void lts_aga_ehb_ilores_dshres_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ham_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ishres_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1567,12 +1607,9 @@ static void lts_aga_ham_ilores_dshres_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { @@ -1581,23 +1618,1266 @@ static void lts_aga_ham_ilores_dshres_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + colf = colors_aga[dpval]; + } + col = filter_pixel(col, colf); cp += cpadds[0]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_ehb_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_ehb_ishres_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + colf = CONVERT_RGB(v); + } else { + colf = colors_aga[c]; + } + col = filter_pixel(col, colf); + cp += cpadds[0]; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_ham_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + c = cp[1]; + clxdat |= bplcoltable[c]; + decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_ham_ishres_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[2]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + colf = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + col = filter_pixel(col, colf); + cp += cpadds[0]; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_kehb_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_kehb_ishres_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + colf = colors_aga[c & 31]; + col = filter_pixel(col, colf); + cp += cpadds[0]; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_n_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + cp += cpadds[0]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + cp += cpadds[1]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + cp += cpadds[2]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + cp += cpadds[3]; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_n_ilores_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + cp += cpadds[0]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + cp += cpadds[1]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + cp += cpadds[2]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + cp += cpadds[3]; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_dpf_ilores_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + cp += cpadds[0]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + cp += cpadds[1]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + cp += cpadds[2]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + cp += cpadds[3]; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_ehb_ilores_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[1]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[2]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[3]; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_ham_ilores_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + cp += cpadds[0]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + cp += cpadds[1]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + cp += cpadds[2]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + cp += cpadds[3]; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_kehb_ilores_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + cp += cpadds[0]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + cp += cpadds[1]; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_n_ihires_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + cp += cpadds[0]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + cp += cpadds[1]; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_dpf_ihires_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + cp += cpadds[0]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + cp += cpadds[1]; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_ehb_ihires_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[1]; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_ham_ihires_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + cp += cpadds[0]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + cp += cpadds[1]; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_kehb_ihires_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + cp += cpadds[0]; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_n_ishres_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + cp += cpadds[0]; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_dpf_ishres_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + cp += cpadds[0]; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_ehb_ishres_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[3]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -1606,7 +2886,11 @@ static void lts_aga_ham_ilores_dshres_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_kehb_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ishres_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1631,12 +2915,9 @@ static void lts_aga_kehb_ilores_dshres_b1(int draw_start, int draw_end, int draw if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { @@ -1645,27 +2926,9 @@ static void lts_aga_kehb_ilores_dshres_b1(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - col = colors_aga[c & 31]; - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; - c ^= bxor; - col = colors_aga[c & 31]; - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[2]; - c ^= bxor; - col = colors_aga[c & 31]; - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[3]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[0]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -1674,7 +2937,11 @@ static void lts_aga_kehb_ilores_dshres_b1(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_aga_n_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ishres_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1699,10 +2966,11 @@ static void lts_aga_n_ihires_dshres_b1(int draw_start, int draw_end, int draw_st if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; + buf2++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { @@ -1711,16 +2979,11 @@ static void lts_aga_n_ihires_dshres_b1(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - col = colors_aga[c]; - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[0]; *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1728,7 +2991,11 @@ static void lts_aga_n_ihires_dshres_b1(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_aga_dpf_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ilores_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1753,10 +3020,11 @@ static void lts_aga_dpf_ihires_dshres_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; + buf2++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { @@ -1765,19 +3033,6 @@ static void lts_aga_dpf_ihires_dshres_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -1786,7 +3041,9 @@ static void lts_aga_dpf_ihires_dshres_b1(int draw_start, int draw_end, int draw_ dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[0]; *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1794,7 +3051,11 @@ static void lts_aga_dpf_ihires_dshres_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ehb_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ilores_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1819,10 +3080,11 @@ static void lts_aga_ehb_ihires_dshres_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; + buf2++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { @@ -1831,18 +3093,6 @@ static void lts_aga_ehb_ihires_dshres_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; - } - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -1850,7 +3100,9 @@ static void lts_aga_ehb_ihires_dshres_b1(int draw_start, int draw_end, int draw_ } else { col = colors_aga[c]; } + cp += cpadds[0]; *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1858,7 +3110,11 @@ static void lts_aga_ehb_ihires_dshres_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ham_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ilores_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1883,10 +3139,11 @@ static void lts_aga_ham_ihires_dshres_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; + buf2++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { @@ -1895,14 +3152,10 @@ static void lts_aga_ham_ihires_dshres_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1910,7 +3163,11 @@ static void lts_aga_ham_ihires_dshres_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_kehb_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ilores_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1935,10 +3192,11 @@ static void lts_aga_kehb_ihires_dshres_b1(int draw_start, int draw_end, int draw if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; + buf2++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { @@ -1947,16 +3205,11 @@ static void lts_aga_kehb_ihires_dshres_b1(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - col = colors_aga[c & 31]; - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[0]; *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1964,7 +3217,11 @@ static void lts_aga_kehb_ihires_dshres_b1(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_aga_n_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ilores_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1990,8 +3247,10 @@ static void lts_aga_n_ishres_dshres_b1(int draw_start, int draw_end, int draw_st if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { @@ -2000,10 +3259,13 @@ static void lts_aga_n_ishres_dshres_b1(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c]; + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2011,7 +3273,7 @@ static void lts_aga_n_ishres_dshres_b1(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_aga_dpf_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ihires_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2037,8 +3299,10 @@ static void lts_aga_dpf_ishres_dshres_b1(int draw_start, int draw_end, int draw_ if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { @@ -2047,16 +3311,17 @@ static void lts_aga_dpf_ishres_dshres_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + colf = colors_aga[c]; + col = filter_pixel(col, colf); cp += cpadds[0]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2064,7 +3329,7 @@ static void lts_aga_dpf_ishres_dshres_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ehb_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2090,8 +3355,10 @@ static void lts_aga_ehb_ishres_dshres_b1(int draw_start, int draw_end, int draw_ if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { @@ -2100,15 +3367,19 @@ static void lts_aga_ehb_ishres_dshres_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2116,7 +3387,7 @@ static void lts_aga_ehb_ishres_dshres_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ham_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ihires_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2142,8 +3413,10 @@ static void lts_aga_ham_ishres_dshres_b1(int draw_start, int draw_end, int draw_ if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { @@ -2152,9 +3425,29 @@ static void lts_aga_ham_ishres_dshres_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + colf = colors_aga[dpval]; + } + col = filter_pixel(col, colf); cp += cpadds[0]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2162,7 +3455,7 @@ static void lts_aga_ham_ishres_dshres_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_kehb_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2188,8 +3481,10 @@ static void lts_aga_kehb_ishres_dshres_b1(int draw_start, int draw_end, int draw if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { @@ -2198,10 +3493,18 @@ static void lts_aga_kehb_ishres_dshres_b1(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; - col = colors_aga[c & 31]; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2209,7 +3512,7 @@ static void lts_aga_kehb_ishres_dshres_b1(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_aga_n_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ihires_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2247,9 +3550,25 @@ static void lts_aga_n_ilores_dlores_b2(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; - col = colors_aga[c]; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + colf = CONVERT_RGB(v); + } else { + colf = colors_aga[c]; + } + col = filter_pixel(col, colf); + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; } @@ -2259,7 +3578,7 @@ static void lts_aga_n_ilores_dlores_b2(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_aga_dpf_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2297,15 +3616,11 @@ static void lts_aga_dpf_ilores_dlores_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + c = cp[1]; + clxdat |= bplcoltable[c]; + decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); cp += cpadds[0]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } *buf1++ = col; *buf2++ = col; } @@ -2315,7 +3630,7 @@ static void lts_aga_dpf_ilores_dlores_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ehb_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ihires_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2353,14 +3668,13 @@ static void lts_aga_ehb_ilores_dlores_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + colf = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + col = filter_pixel(col, colf); cp += cpadds[0]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; - } *buf1++ = col; *buf2++ = col; } @@ -2370,7 +3684,7 @@ static void lts_aga_ehb_ilores_dlores_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ham_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2408,8 +3722,11 @@ static void lts_aga_ham_ilores_dlores_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + c = cp[1]; + clxdat |= bplcoltable[c]; cp += cpadds[0]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); *buf1++ = col; *buf2++ = col; } @@ -2419,7 +3736,7 @@ static void lts_aga_ham_ilores_dlores_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_kehb_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ihires_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2457,9 +3774,15 @@ static void lts_aga_kehb_ilores_dlores_b2(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c & 31]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + colf = colors_aga[c & 31]; + col = filter_pixel(col, colf); + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; } @@ -2469,7 +3792,47 @@ static void lts_aga_kehb_ilores_dlores_b2(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_aga_n_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ishres_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ishres_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ishres_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ishres_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ishres_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2494,10 +3857,12 @@ static void lts_aga_n_ihires_dlores_b2(int draw_start, int draw_end, int draw_st if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; + buf1 += 2; + buf2 += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf2++ = bgcolor; *buf2++ = bgcolor; } } @@ -2507,9 +3872,16 @@ static void lts_aga_n_ihires_dlores_b2(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; cp += cpadds[0]; + *buf1++ = col; + *buf2++ = col; + c = *cp; + clxdat |= bplcoltable[c]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; } @@ -2519,7 +3891,11 @@ static void lts_aga_n_ihires_dlores_b2(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_aga_dpf_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ilores_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2544,10 +3920,12 @@ static void lts_aga_dpf_ihires_dlores_b2(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; + buf1 += 2; + buf2 += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf2++ = bgcolor; *buf2++ = bgcolor; } } @@ -2557,7 +3935,19 @@ static void lts_aga_dpf_ihires_dlores_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } cp += cpadds[0]; + *buf1++ = col; + *buf2++ = col; + c = *cp; + clxdat |= bplcoltable[c]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -2566,6 +3956,7 @@ static void lts_aga_dpf_ihires_dlores_b2(int draw_start, int draw_end, int draw_ dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; } @@ -2575,7 +3966,11 @@ static void lts_aga_dpf_ihires_dlores_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ehb_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ilores_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2600,10 +3995,12 @@ static void lts_aga_ehb_ihires_dlores_b2(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; + buf1 += 2; + buf2 += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf2++ = bgcolor; *buf2++ = bgcolor; } } @@ -2613,7 +4010,18 @@ static void lts_aga_ehb_ihires_dlores_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } cp += cpadds[0]; + *buf1++ = col; + *buf2++ = col; + c = *cp; + clxdat |= bplcoltable[c]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -2621,6 +4029,7 @@ static void lts_aga_ehb_ihires_dlores_b2(int draw_start, int draw_end, int draw_ } else { col = colors_aga[c]; } + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; } @@ -2630,7 +4039,11 @@ static void lts_aga_ehb_ihires_dlores_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ham_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ilores_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2655,11 +4068,13 @@ static void lts_aga_ham_ihires_dlores_b2(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; + buf1 += 2; + buf2 += 2; } else { + *buf1++ = bgcolor; *buf1++ = bgcolor; *buf2++ = bgcolor; + *buf2++ = bgcolor; } } } else { @@ -2668,8 +4083,14 @@ static void lts_aga_ham_ihires_dlores_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); cp += cpadds[0]; + *buf1++ = col; + *buf2++ = col; + c = *cp; + clxdat |= bplcoltable[c]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; } @@ -2679,7 +4100,11 @@ static void lts_aga_ham_ihires_dlores_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_kehb_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ilores_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2704,10 +4129,12 @@ static void lts_aga_kehb_ihires_dlores_b2(int draw_start, int draw_end, int draw if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; + buf1 += 2; + buf2 += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf2++ = bgcolor; *buf2++ = bgcolor; } } @@ -2717,9 +4144,16 @@ static void lts_aga_kehb_ihires_dlores_b2(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; cp += cpadds[0]; + *buf1++ = col; + *buf2++ = col; + c = *cp; + clxdat |= bplcoltable[c]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; } @@ -2729,27 +4163,11 @@ static void lts_aga_kehb_ihires_dlores_b2(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_aga_n_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_aga_dpf_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_aga_ehb_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_aga_ham_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_aga_kehb_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ilores_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { lts_null(); } -static void lts_aga_n_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2774,12 +4192,10 @@ static void lts_aga_n_ilores_dhires_b2(int draw_start, int draw_end, int draw_st if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; + buf1++; + buf2++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf2++ = bgcolor; *buf2++ = bgcolor; } } @@ -2789,16 +4205,9 @@ static void lts_aga_n_ilores_dhires_b2(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - col = colors_aga[c]; - *buf1++ = col; - *buf2++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; } @@ -2808,7 +4217,11 @@ static void lts_aga_n_ilores_dhires_b2(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_aga_dpf_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ihires_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2833,12 +4246,10 @@ static void lts_aga_dpf_ilores_dhires_b2(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; + buf1++; + buf2++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf2++ = bgcolor; *buf2++ = bgcolor; } } @@ -2848,20 +4259,6 @@ static void lts_aga_dpf_ilores_dhires_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } - *buf1++ = col; - *buf2++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -2870,6 +4267,7 @@ static void lts_aga_dpf_ilores_dhires_b2(int draw_start, int draw_end, int draw_ dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; } @@ -2879,7 +4277,11 @@ static void lts_aga_dpf_ilores_dhires_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ehb_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ihires_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2904,12 +4306,10 @@ static void lts_aga_ehb_ilores_dhires_b2(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; + buf1++; + buf2++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf2++ = bgcolor; *buf2++ = bgcolor; } } @@ -2919,19 +4319,6 @@ static void lts_aga_ehb_ilores_dhires_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; - } - *buf1++ = col; - *buf2++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -2939,6 +4326,7 @@ static void lts_aga_ehb_ilores_dhires_b2(int draw_start, int draw_end, int draw_ } else { col = colors_aga[c]; } + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; } @@ -2948,7 +4336,11 @@ static void lts_aga_ehb_ilores_dhires_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ham_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ihires_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2973,13 +4365,11 @@ static void lts_aga_ham_ilores_dhires_b2(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; + buf1++; + buf2++; } else { - *buf1++ = bgcolor; *buf1++ = bgcolor; *buf2++ = bgcolor; - *buf2++ = bgcolor; } } } else { @@ -2988,14 +4378,8 @@ static void lts_aga_ham_ilores_dhires_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); - *buf1++ = col; - *buf2++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; } @@ -3005,7 +4389,11 @@ static void lts_aga_ham_ilores_dhires_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_kehb_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ihires_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3030,12 +4418,10 @@ static void lts_aga_kehb_ilores_dhires_b2(int draw_start, int draw_end, int draw if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; + buf1++; + buf2++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf2++ = bgcolor; *buf2++ = bgcolor; } } @@ -3045,16 +4431,9 @@ static void lts_aga_kehb_ilores_dhires_b2(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - col = colors_aga[c & 31]; - *buf1++ = col; - *buf2++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; } @@ -3064,7 +4443,11 @@ static void lts_aga_kehb_ilores_dhires_b2(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_aga_n_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ihires_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3102,9 +4485,11 @@ static void lts_aga_n_ihires_dhires_b2(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c]; + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; } @@ -3114,7 +4499,7 @@ static void lts_aga_n_ihires_dhires_b2(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_aga_dpf_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ishres_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3152,15 +4537,15 @@ static void lts_aga_dpf_ihires_dhires_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + colf = colors_aga[c]; + col = filter_pixel(col, colf); cp += cpadds[0]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } *buf1++ = col; *buf2++ = col; } @@ -3170,7 +4555,7 @@ static void lts_aga_dpf_ihires_dhires_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ehb_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3208,14 +4593,17 @@ static void lts_aga_ehb_ihires_dhires_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; } @@ -3225,7 +4613,7 @@ static void lts_aga_ehb_ihires_dhires_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ham_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ishres_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3263,8 +4651,27 @@ static void lts_aga_ham_ihires_dhires_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + colf = colors_aga[dpval]; + } + col = filter_pixel(col, colf); cp += cpadds[0]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); *buf1++ = col; *buf2++ = col; } @@ -3274,7 +4681,7 @@ static void lts_aga_ham_ihires_dhires_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_kehb_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3312,9 +4719,16 @@ static void lts_aga_kehb_ihires_dhires_b2(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; - col = colors_aga[c & 31]; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; } @@ -3324,7 +4738,7 @@ static void lts_aga_kehb_ihires_dhires_b2(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_aga_n_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ishres_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3362,9 +4776,25 @@ static void lts_aga_n_ishres_dhires_b2(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; - col = colors_aga[c]; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + colf = CONVERT_RGB(v); + } else { + colf = colors_aga[c]; + } + col = filter_pixel(col, colf); + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; } @@ -3374,7 +4804,7 @@ static void lts_aga_n_ishres_dhires_b2(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_aga_dpf_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3412,15 +4842,11 @@ static void lts_aga_dpf_ishres_dhires_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + c = cp[1]; + clxdat |= bplcoltable[c]; + decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); cp += cpadds[0]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } *buf1++ = col; *buf2++ = col; } @@ -3430,7 +4856,7 @@ static void lts_aga_dpf_ishres_dhires_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ehb_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ishres_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3468,14 +4894,13 @@ static void lts_aga_ehb_ishres_dhires_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + colf = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + col = filter_pixel(col, colf); cp += cpadds[0]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; - } *buf1++ = col; *buf2++ = col; } @@ -3485,7 +4910,7 @@ static void lts_aga_ehb_ishres_dhires_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_ham_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3523,8 +4948,11 @@ static void lts_aga_ham_ishres_dhires_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + c = cp[1]; + clxdat |= bplcoltable[c]; cp += cpadds[0]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); *buf1++ = col; *buf2++ = col; } @@ -3534,7 +4962,7 @@ static void lts_aga_ham_ishres_dhires_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_aga_kehb_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ishres_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3572,9 +5000,15 @@ static void lts_aga_kehb_ishres_dhires_b2(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c & 31]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + colf = colors_aga[c & 31]; + col = filter_pixel(col, colf); + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; } @@ -3628,30 +5062,30 @@ static void lts_aga_n_ilores_dshres_b2(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[2]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[2]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[3]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[3]; *buf1++ = col; *buf2++ = col; } @@ -3661,6 +5095,10 @@ static void lts_aga_n_ilores_dshres_b2(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } +static void lts_aga_n_ilores_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_dpf_ilores_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -3705,7 +5143,6 @@ static void lts_aga_dpf_ilores_dshres_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -3714,11 +5151,11 @@ static void lts_aga_dpf_ilores_dshres_b2(int draw_start, int draw_end, int draw_ dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -3727,11 +5164,11 @@ static void lts_aga_dpf_ilores_dshres_b2(int draw_start, int draw_end, int draw_ dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[2]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -3740,11 +5177,11 @@ static void lts_aga_dpf_ilores_dshres_b2(int draw_start, int draw_end, int draw_ dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[2]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[3]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -3753,6 +5190,7 @@ static void lts_aga_dpf_ilores_dshres_b2(int draw_start, int draw_end, int draw_ dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[3]; *buf1++ = col; *buf2++ = col; } @@ -3762,6 +5200,10 @@ static void lts_aga_dpf_ilores_dshres_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_aga_dpf_ilores_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_ehb_ilores_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -3806,7 +5248,6 @@ static void lts_aga_ehb_ilores_dshres_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -3814,11 +5255,11 @@ static void lts_aga_ehb_ilores_dshres_b2(int draw_start, int draw_end, int draw_ } else { col = colors_aga[c]; } + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -3826,11 +5267,11 @@ static void lts_aga_ehb_ilores_dshres_b2(int draw_start, int draw_end, int draw_ } else { col = colors_aga[c]; } + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[2]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -3838,11 +5279,11 @@ static void lts_aga_ehb_ilores_dshres_b2(int draw_start, int draw_end, int draw_ } else { col = colors_aga[c]; } + cp += cpadds[2]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[3]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -3850,6 +5291,7 @@ static void lts_aga_ehb_ilores_dshres_b2(int draw_start, int draw_end, int draw_ } else { col = colors_aga[c]; } + cp += cpadds[3]; *buf1++ = col; *buf2++ = col; } @@ -3859,6 +5301,10 @@ static void lts_aga_ehb_ilores_dshres_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_aga_ehb_ilores_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_ham_ilores_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -3903,26 +5349,26 @@ static void lts_aga_ham_ilores_dshres_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[2]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[2]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[3]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[3]; *buf1++ = col; *buf2++ = col; } @@ -3932,6 +5378,10 @@ static void lts_aga_ham_ilores_dshres_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_aga_ham_ilores_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_kehb_ilores_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -3976,30 +5426,30 @@ static void lts_aga_kehb_ilores_dshres_b2(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[2]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[2]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[3]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[3]; *buf1++ = col; *buf2++ = col; } @@ -4009,6 +5459,10 @@ static void lts_aga_kehb_ilores_dshres_b2(int draw_start, int draw_end, int draw cnt += bufaddv; } } +static void lts_aga_kehb_ilores_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_n_ihires_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4049,16 +5503,16 @@ static void lts_aga_n_ihires_dshres_b2(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; } @@ -4068,6 +5522,10 @@ static void lts_aga_n_ihires_dshres_b2(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } +static void lts_aga_n_ihires_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_dpf_ihires_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4108,7 +5566,6 @@ static void lts_aga_dpf_ihires_dshres_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -4117,11 +5574,11 @@ static void lts_aga_dpf_ihires_dshres_b2(int draw_start, int draw_end, int draw_ dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -4130,6 +5587,7 @@ static void lts_aga_dpf_ihires_dshres_b2(int draw_start, int draw_end, int draw_ dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; } @@ -4139,6 +5597,10 @@ static void lts_aga_dpf_ihires_dshres_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_aga_dpf_ihires_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_ehb_ihires_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4179,7 +5641,6 @@ static void lts_aga_ehb_ihires_dshres_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -4187,11 +5648,11 @@ static void lts_aga_ehb_ihires_dshres_b2(int draw_start, int draw_end, int draw_ } else { col = colors_aga[c]; } + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -4199,6 +5660,7 @@ static void lts_aga_ehb_ihires_dshres_b2(int draw_start, int draw_end, int draw_ } else { col = colors_aga[c]; } + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; } @@ -4208,6 +5670,10 @@ static void lts_aga_ehb_ihires_dshres_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_aga_ehb_ihires_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_ham_ihires_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4248,14 +5714,14 @@ static void lts_aga_ham_ihires_dshres_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; } @@ -4265,6 +5731,10 @@ static void lts_aga_ham_ihires_dshres_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_aga_ham_ihires_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_kehb_ihires_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4305,16 +5775,16 @@ static void lts_aga_kehb_ihires_dshres_b2(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; } @@ -4324,6 +5794,10 @@ static void lts_aga_kehb_ihires_dshres_b2(int draw_start, int draw_end, int draw cnt += bufaddv; } } +static void lts_aga_kehb_ihires_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_n_ishres_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4362,9 +5836,9 @@ static void lts_aga_n_ishres_dshres_b2(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; } @@ -4374,6 +5848,10 @@ static void lts_aga_n_ishres_dshres_b2(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } +static void lts_aga_n_ishres_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_dpf_ishres_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4412,7 +5890,6 @@ static void lts_aga_dpf_ishres_dshres_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -4421,6 +5898,7 @@ static void lts_aga_dpf_ishres_dshres_b2(int draw_start, int draw_end, int draw_ dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; } @@ -4430,6 +5908,10 @@ static void lts_aga_dpf_ishres_dshres_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_aga_dpf_ishres_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_ehb_ishres_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4468,7 +5950,6 @@ static void lts_aga_ehb_ishres_dshres_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -4476,6 +5957,7 @@ static void lts_aga_ehb_ishres_dshres_b2(int draw_start, int draw_end, int draw_ } else { col = colors_aga[c]; } + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; } @@ -4485,6 +5967,10 @@ static void lts_aga_ehb_ishres_dshres_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_aga_ehb_ishres_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_ham_ishres_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4523,8 +6009,8 @@ static void lts_aga_ham_ishres_dshres_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; } @@ -4534,6 +6020,10 @@ static void lts_aga_ham_ishres_dshres_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_aga_ham_ishres_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_kehb_ishres_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4572,9 +6062,9 @@ static void lts_aga_kehb_ishres_dshres_b2(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; } @@ -4584,6 +6074,10 @@ static void lts_aga_kehb_ishres_dshres_b2(int draw_start, int draw_end, int draw cnt += bufaddv; } } +static void lts_aga_kehb_ishres_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static LINETOSRC_FUNCF linetoscr_aga_fast_funcs[] = { lts_aga_n_ilores_dlores_b1, lts_aga_dpf_ilores_dlores_b1, @@ -4677,3 +6171,96 @@ static LINETOSRC_FUNCF linetoscr_aga_fast_funcs[] = { lts_aga_kehb_ishres_dshres_b2, NULL }; +static LINETOSRC_FUNCF linetoscr_aga_fast_funcs_filtered[] = { + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_n_ihires_dlores_b1_filtered, + lts_aga_dpf_ihires_dlores_b1_filtered, + lts_aga_ehb_ihires_dlores_b1_filtered, + lts_aga_ham_ihires_dlores_b1_filtered, + lts_aga_kehb_ihires_dlores_b1_filtered, + lts_aga_n_ishres_dlores_b1_filtered, + lts_aga_dpf_ishres_dlores_b1_filtered, + lts_aga_ehb_ishres_dlores_b1_filtered, + lts_aga_ham_ishres_dlores_b1_filtered, + lts_aga_kehb_ishres_dlores_b1_filtered, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_n_ishres_dhires_b1_filtered, + lts_aga_dpf_ishres_dhires_b1_filtered, + lts_aga_ehb_ishres_dhires_b1_filtered, + lts_aga_ham_ishres_dhires_b1_filtered, + lts_aga_kehb_ishres_dhires_b1_filtered, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_n_ihires_dlores_b2_filtered, + lts_aga_dpf_ihires_dlores_b2_filtered, + lts_aga_ehb_ihires_dlores_b2_filtered, + lts_aga_ham_ihires_dlores_b2_filtered, + lts_aga_kehb_ihires_dlores_b2_filtered, + lts_aga_n_ishres_dlores_b2_filtered, + lts_aga_dpf_ishres_dlores_b2_filtered, + lts_aga_ehb_ishres_dlores_b2_filtered, + lts_aga_ham_ishres_dlores_b2_filtered, + lts_aga_kehb_ishres_dlores_b2_filtered, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_n_ishres_dhires_b2_filtered, + lts_aga_dpf_ishres_dhires_b2_filtered, + lts_aga_ehb_ishres_dhires_b2_filtered, + lts_aga_ham_ishres_dhires_b2_filtered, + lts_aga_kehb_ishres_dhires_b2_filtered, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +}; diff --git a/linetoscr_aga_fm0.cpp b/linetoscr_aga_fm0.cpp index 59f19182..f0bea4e4 100644 --- a/linetoscr_aga_fm0.cpp +++ b/linetoscr_aga_fm0.cpp @@ -62,6 +62,10 @@ static void lts_aga_fm0_n0_p2_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_n0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p2_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -123,6 +127,10 @@ static void lts_aga_fm0_n1_p2_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_n1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p2_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -186,6 +194,10 @@ static void lts_aga_fm0_dpf0_p2_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p2_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -252,30 +264,58 @@ static void lts_aga_fm0_dpf1_p2_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p2_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p2_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p2_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm0_ham0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p2_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm0_ham1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p2_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p2_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -334,6 +374,10 @@ static void lts_aga_fm0_n0_p4_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_n0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -395,6 +439,10 @@ static void lts_aga_fm0_n1_p4_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_n1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -458,6 +506,10 @@ static void lts_aga_fm0_dpf0_p4_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -524,30 +576,58 @@ static void lts_aga_fm0_dpf1_p4_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -606,6 +686,10 @@ static void lts_aga_fm0_n0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_n0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -667,6 +751,10 @@ static void lts_aga_fm0_n1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_n1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -730,6 +818,10 @@ static void lts_aga_fm0_dpf0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -796,6 +888,10 @@ static void lts_aga_fm0_dpf1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -860,6 +956,10 @@ static void lts_aga_fm0_ehb0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_ehb0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -927,6 +1027,10 @@ static void lts_aga_fm0_ehb1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_ehb1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -985,6 +1089,10 @@ static void lts_aga_fm0_ham0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_ham0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1046,6 +1154,10 @@ static void lts_aga_fm0_ham1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_ham1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1105,6 +1217,10 @@ static void lts_aga_fm0_kehb0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_kehb0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1167,6 +1283,10 @@ static void lts_aga_fm0_kehb1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_kehb1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1225,6 +1345,10 @@ static void lts_aga_fm0_n0_p8_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_n0_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1286,6 +1410,10 @@ static void lts_aga_fm0_n1_p8_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_n1_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1349,6 +1477,10 @@ static void lts_aga_fm0_dpf0_p8_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1415,14 +1547,26 @@ static void lts_aga_fm0_dpf1_p8_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1481,6 +1625,10 @@ static void lts_aga_fm0_ham0_p8_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_ham0_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1542,14 +1690,26 @@ static void lts_aga_fm0_ham1_p8_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm0_ham1_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p2_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1623,6 +1783,10 @@ static void lts_aga_fm0_n0_p2_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_n0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p2_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1699,6 +1863,10 @@ static void lts_aga_fm0_n1_p2_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_n1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p2_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1777,6 +1945,10 @@ static void lts_aga_fm0_dpf0_p2_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p2_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1858,30 +2030,58 @@ static void lts_aga_fm0_dpf1_p2_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm0_ham0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm0_ham1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1955,6 +2155,10 @@ static void lts_aga_fm0_n0_p4_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_n0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2031,6 +2235,10 @@ static void lts_aga_fm0_n1_p4_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_n1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2109,6 +2317,10 @@ static void lts_aga_fm0_dpf0_p4_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2190,30 +2402,58 @@ static void lts_aga_fm0_dpf1_p4_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2287,6 +2527,10 @@ static void lts_aga_fm0_n0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_n0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2363,6 +2607,10 @@ static void lts_aga_fm0_n1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_n1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2441,6 +2689,10 @@ static void lts_aga_fm0_dpf0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2522,6 +2774,10 @@ static void lts_aga_fm0_dpf1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2601,6 +2857,10 @@ static void lts_aga_fm0_ehb0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_ehb0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2683,6 +2943,10 @@ static void lts_aga_fm0_ehb1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_ehb1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2756,6 +3020,10 @@ static void lts_aga_fm0_ham0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_ham0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2832,6 +3100,10 @@ static void lts_aga_fm0_ham1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_ham1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2906,6 +3178,10 @@ static void lts_aga_fm0_kehb0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_kehb0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2983,6 +3259,10 @@ static void lts_aga_fm0_kehb1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_kehb1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3056,6 +3336,10 @@ static void lts_aga_fm0_n0_p8_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_n0_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3132,6 +3416,10 @@ static void lts_aga_fm0_n1_p8_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_n1_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3210,6 +3498,10 @@ static void lts_aga_fm0_dpf0_p8_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3291,14 +3583,26 @@ static void lts_aga_fm0_dpf1_p8_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3372,6 +3676,10 @@ static void lts_aga_fm0_ham0_p8_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_ham0_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3448,14 +3756,26 @@ static void lts_aga_fm0_ham1_p8_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm0_ham1_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p2_ihires_dlores(void) { while (denise_cck < denise_total) { @@ -3515,7 +3835,7 @@ static void lts_aga_fm0_n0_p2_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm0_n1_p2_ihires_dlores(void) +static void lts_aga_fm0_n0_p2_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3540,16 +3860,30 @@ static void lts_aga_fm0_n1_p2_ihires_dlores(void) } shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl2(); } loaded_pix = getbpl2(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -3577,7 +3911,7 @@ static void lts_aga_fm0_n1_p2_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p2_ihires_dlores(void) +static void lts_aga_fm0_n1_p2_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3596,18 +3930,16 @@ static void lts_aga_fm0_dpf0_p2_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } loaded_pix = getbpl2(); loaded_pixs[0] = loaded_pix; @@ -3641,7 +3973,7 @@ static void lts_aga_fm0_dpf0_p2_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p2_ihires_dlores(void) +static void lts_aga_fm0_n1_p2_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3660,12 +3992,7 @@ static void lts_aga_fm0_dpf1_p2_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } @@ -3678,9 +4005,29 @@ static void lts_aga_fm0_dpf1_p2_ihires_dlores(void) } loaded_pix = getbpl2(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -3708,31 +4055,7 @@ static void lts_aga_fm0_dpf1_p2_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb1_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham0_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham1_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb0_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb1_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_n0_p4_ihires_dlores(void) +static void lts_aga_fm0_dpf0_p2_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3751,17 +4074,22 @@ static void lts_aga_fm0_n0_p4_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl2(); } - loaded_pix = getbpl4(); + loaded_pix = getbpl2(); loaded_pixs[0] = loaded_pix; - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -3791,7 +4119,7 @@ static void lts_aga_fm0_n0_p4_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm0_n1_p4_ihires_dlores(void) +static void lts_aga_fm0_dpf0_p2_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3810,22 +4138,46 @@ static void lts_aga_fm0_n1_p4_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl2(); } - loaded_pix = getbpl4(); + loaded_pix = getbpl2(); loaded_pixs[0] = loaded_pix; - shiftbpl4(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -3853,7 +4205,7 @@ static void lts_aga_fm0_n1_p4_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p4_ihires_dlores(void) +static void lts_aga_fm0_dpf1_p2_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3881,13 +4233,16 @@ static void lts_aga_fm0_dpf0_p4_ihires_dlores(void) } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl2e(); } - loaded_pix = getbpl4(); + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2(); loaded_pixs[0] = loaded_pix; - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -3917,7 +4272,7 @@ static void lts_aga_fm0_dpf0_p4_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p4_ihires_dlores(void) +static void lts_aga_fm0_dpf1_p2_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3945,18 +4300,43 @@ static void lts_aga_fm0_dpf1_p4_ihires_dlores(void) } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl2e(); } if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl2o(); } - loaded_pix = getbpl4(); + loaded_pix = getbpl2(); loaded_pixs[0] = loaded_pix; - shiftbpl4(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -3984,111 +4364,55 @@ static void lts_aga_fm0_dpf1_p4_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p4_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb1_p4_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham0_p4_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham1_p4_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb0_p4_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb1_p4_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_n0_p6_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_n1_p6_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_dpf0_p6_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_dpf1_p6_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb0_p6_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb1_p6_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham0_p6_ihires_dlores(void) +static void lts_aga_fm0_ehb0_p2_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_ham1_p6_ihires_dlores(void) +static void lts_aga_fm0_ehb0_p2_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p6_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb1_p6_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm0_n0_p8_ihires_dlores(void) +static void lts_aga_fm0_ehb1_p2_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_n1_p8_ihires_dlores(void) +static void lts_aga_fm0_ehb1_p2_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_dpf0_p8_ihires_dlores(void) +static void lts_aga_fm0_ham0_p2_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_dpf1_p8_ihires_dlores(void) +static void lts_aga_fm0_ham0_p2_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_ehb0_p8_ihires_dlores(void) +static void lts_aga_fm0_ham1_p2_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p8_ihires_dlores(void) +static void lts_aga_fm0_ham1_p2_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham0_p8_ihires_dlores(void) +static void lts_aga_fm0_kehb0_p2_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_ham1_p8_ihires_dlores(void) +static void lts_aga_fm0_kehb0_p2_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p8_ihires_dlores(void) +static void lts_aga_fm0_kehb1_p2_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p8_ihires_dlores(void) +static void lts_aga_fm0_kehb1_p2_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_n0_p2_ihires_dlores_spr(void) +static void lts_aga_fm0_n0_p4_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4100,7 +4424,6 @@ static void lts_aga_fm0_n0_p2_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -4112,29 +4435,15 @@ static void lts_aga_fm0_n0_p2_ihires_dlores_spr(void) } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2(); - } - loaded_pix = getbpl2(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + copybpl4(); } + loaded_pix = getbpl4(); loaded_pixs[0] = loaded_pix; - shiftbpl2(); + shiftbpl4(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4162,7 +4471,7 @@ static void lts_aga_fm0_n0_p2_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm0_n1_p2_ihires_dlores_spr(void) +static void lts_aga_fm0_n0_p4_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4174,7 +4483,6 @@ static void lts_aga_fm0_n1_p2_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -4186,32 +4494,32 @@ static void lts_aga_fm0_n1_p2_ihires_dlores_spr(void) } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl4(); } - loaded_pix = getbpl2(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl4(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; - shiftbpl2(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4239,7 +4547,7 @@ static void lts_aga_fm0_n1_p2_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p2_ihires_dlores_spr(void) +static void lts_aga_fm0_n1_p4_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4251,7 +4559,6 @@ static void lts_aga_fm0_dpf0_p2_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -4259,38 +4566,22 @@ static void lts_aga_fm0_dpf0_p2_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl4e(); } - loaded_pix = getbpl2(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4(); loaded_pixs[0] = loaded_pix; - shiftbpl2(); + shiftbpl4(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4318,7 +4609,7 @@ static void lts_aga_fm0_dpf0_p2_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p2_ihires_dlores_spr(void) +static void lts_aga_fm0_n1_p4_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4330,7 +4621,6 @@ static void lts_aga_fm0_dpf1_p2_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -4338,41 +4628,42 @@ static void lts_aga_fm0_dpf1_p2_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl4e(); } if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl4o(); } - loaded_pix = getbpl2(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl4(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; - shiftbpl2(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4400,31 +4691,7 @@ static void lts_aga_fm0_dpf1_p2_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb1_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham0_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham1_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb0_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb1_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_n0_p4_ihires_dlores_spr(void) +static void lts_aga_fm0_dpf0_p4_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4436,7 +4703,6 @@ static void lts_aga_fm0_n0_p4_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -4444,7 +4710,12 @@ static void lts_aga_fm0_n0_p4_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } @@ -4453,24 +4724,10 @@ static void lts_aga_fm0_n0_p4_ihires_dlores_spr(void) copybpl4(); } loaded_pix = getbpl4(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } - } loaded_pixs[0] = loaded_pix; shiftbpl4(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4498,7 +4755,7 @@ static void lts_aga_fm0_n0_p4_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm0_n1_p4_ihires_dlores_spr(void) +static void lts_aga_fm0_dpf0_p4_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4510,7 +4767,6 @@ static void lts_aga_fm0_n1_p4_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -4518,36 +4774,46 @@ static void lts_aga_fm0_n1_p4_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl4(); } loaded_pix = getbpl4(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4575,7 +4841,7 @@ static void lts_aga_fm0_n1_p4_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p4_ihires_dlores_spr(void) +static void lts_aga_fm0_dpf1_p4_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4587,7 +4853,6 @@ static void lts_aga_fm0_dpf0_p4_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -4606,27 +4871,16 @@ static void lts_aga_fm0_dpf0_p4_ihires_dlores_spr(void) } shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl4e(); } - loaded_pix = getbpl4(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4(); loaded_pixs[0] = loaded_pix; shiftbpl4(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4654,7 +4908,7 @@ static void lts_aga_fm0_dpf0_p4_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p4_ihires_dlores_spr(void) +static void lts_aga_fm0_dpf1_p4_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4666,7 +4920,6 @@ static void lts_aga_fm0_dpf1_p4_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -4691,24 +4944,35 @@ static void lts_aga_fm0_dpf1_p4_ihires_dlores_spr(void) copybpl4o(); } loaded_pix = getbpl4(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4736,431 +5000,3567 @@ static void lts_aga_fm0_dpf1_p4_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p4_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb1_p4_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham0_p4_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham1_p4_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb0_p4_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb1_p4_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_n0_p6_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_n1_p6_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_dpf0_p6_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_dpf1_p6_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb0_p6_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb1_p6_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham0_p6_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham1_p6_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb0_p6_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb1_p6_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_n0_p8_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_n1_p8_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_dpf0_p8_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_dpf1_p8_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb0_p8_ihires_dlores_spr(void) +static void lts_aga_fm0_ehb0_p4_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p8_ihires_dlores_spr(void) +static void lts_aga_fm0_ehb0_p4_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham0_p8_ihires_dlores_spr(void) +static void lts_aga_fm0_ehb1_p4_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_ham1_p8_ihires_dlores_spr(void) +static void lts_aga_fm0_ehb1_p4_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p8_ihires_dlores_spr(void) +static void lts_aga_fm0_ham0_p4_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p8_ihires_dlores_spr(void) +static void lts_aga_fm0_ham0_p4_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_n0_p2_ishres_dlores(void) +static void lts_aga_fm0_ham1_p4_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_n1_p2_ishres_dlores(void) +static void lts_aga_fm0_ham1_p4_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_dpf0_p2_ishres_dlores(void) +static void lts_aga_fm0_kehb0_p4_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_dpf1_p2_ishres_dlores(void) +static void lts_aga_fm0_kehb0_p4_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_ehb0_p2_ishres_dlores(void) +static void lts_aga_fm0_kehb1_p4_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p2_ishres_dlores(void) +static void lts_aga_fm0_kehb1_p4_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham0_p2_ishres_dlores(void) +static void lts_aga_fm0_n0_p6_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_ham1_p2_ishres_dlores(void) +static void lts_aga_fm0_n0_p6_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p2_ishres_dlores(void) +static void lts_aga_fm0_n1_p6_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p2_ishres_dlores(void) +static void lts_aga_fm0_n1_p6_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_n0_p4_ishres_dlores(void) +static void lts_aga_fm0_dpf0_p6_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_n1_p4_ishres_dlores(void) +static void lts_aga_fm0_dpf0_p6_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_dpf0_p4_ishres_dlores(void) +static void lts_aga_fm0_dpf1_p6_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_dpf1_p4_ishres_dlores(void) +static void lts_aga_fm0_dpf1_p6_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_ehb0_p4_ishres_dlores(void) +static void lts_aga_fm0_ehb0_p6_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p4_ishres_dlores(void) +static void lts_aga_fm0_ehb0_p6_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham0_p4_ishres_dlores(void) +static void lts_aga_fm0_ehb1_p6_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_ham1_p4_ishres_dlores(void) +static void lts_aga_fm0_ehb1_p6_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p4_ishres_dlores(void) +static void lts_aga_fm0_ham0_p6_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p4_ishres_dlores(void) +static void lts_aga_fm0_ham0_p6_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_n0_p6_ishres_dlores(void) +static void lts_aga_fm0_ham1_p6_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_n1_p6_ishres_dlores(void) +static void lts_aga_fm0_ham1_p6_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_dpf0_p6_ishres_dlores(void) +static void lts_aga_fm0_kehb0_p6_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_dpf1_p6_ishres_dlores(void) +static void lts_aga_fm0_kehb0_p6_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_ehb0_p6_ishres_dlores(void) +static void lts_aga_fm0_kehb1_p6_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p6_ishres_dlores(void) +static void lts_aga_fm0_kehb1_p6_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham0_p6_ishres_dlores(void) +static void lts_aga_fm0_n0_p8_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_ham1_p6_ishres_dlores(void) +static void lts_aga_fm0_n0_p8_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p6_ishres_dlores(void) +static void lts_aga_fm0_n1_p8_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p6_ishres_dlores(void) +static void lts_aga_fm0_n1_p8_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_n0_p8_ishres_dlores(void) +static void lts_aga_fm0_dpf0_p8_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_n1_p8_ishres_dlores(void) +static void lts_aga_fm0_dpf0_p8_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_dpf0_p8_ishres_dlores(void) +static void lts_aga_fm0_dpf1_p8_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_dpf1_p8_ishres_dlores(void) +static void lts_aga_fm0_dpf1_p8_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_ehb0_p8_ishres_dlores(void) +static void lts_aga_fm0_ehb0_p8_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p8_ishres_dlores(void) +static void lts_aga_fm0_ehb0_p8_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham0_p8_ishres_dlores(void) +static void lts_aga_fm0_ehb1_p8_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_ham1_p8_ishres_dlores(void) +static void lts_aga_fm0_ehb1_p8_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p8_ishres_dlores(void) +static void lts_aga_fm0_ham0_p8_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p8_ishres_dlores(void) +static void lts_aga_fm0_ham0_p8_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_n0_p2_ishres_dlores_spr(void) +static void lts_aga_fm0_ham1_p8_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_n1_p2_ishres_dlores_spr(void) +static void lts_aga_fm0_ham1_p8_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_dpf0_p2_ishres_dlores_spr(void) +static void lts_aga_fm0_kehb0_p8_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_dpf1_p2_ishres_dlores_spr(void) +static void lts_aga_fm0_kehb0_p8_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_ehb0_p2_ishres_dlores_spr(void) +static void lts_aga_fm0_kehb1_p8_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p2_ishres_dlores_spr(void) +static void lts_aga_fm0_kehb1_p8_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham0_p2_ishres_dlores_spr(void) +static void lts_aga_fm0_n0_p2_ihires_dlores_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl2(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm0_ham1_p2_ishres_dlores_spr(void) +static void lts_aga_fm0_n0_p2_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_n1_p2_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl2(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_n1_p2_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_dpf0_p2_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl2(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_dpf0_p2_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_dpf1_p2_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl2(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_dpf1_p2_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_ehb0_p2_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p2_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p2_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p2_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p2_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p2_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p2_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p2_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p2_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p2_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p2_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p2_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p4_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_n0_p4_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_n1_p4_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_n1_p4_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_dpf0_p4_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_dpf0_p4_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_dpf1_p4_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_dpf1_p4_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_ehb0_p4_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p4_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p4_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p4_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p4_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p4_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p6_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p6_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p6_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p6_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p6_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p6_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p6_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p6_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p6_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p6_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p6_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p6_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p6_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p6_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p6_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p6_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p6_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p6_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p6_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p6_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p8_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p8_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p8_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p8_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p8_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p8_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p8_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p8_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p8_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p8_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p8_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p8_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p8_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p8_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p8_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p8_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p8_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p8_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p8_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p8_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p2_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2(); + loaded_pix = getbpl2(); + } + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2(); + loaded_pix = getbpl2(); + } + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_n0_p2_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p2_ishres_dlores_spr(void) +static void lts_aga_fm0_n1_p2_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2e(); + loaded_pix = getbpl2(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl2o(); + loaded_pix = getbpl2(); + } + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl2(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2e(); + loaded_pix = getbpl2(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl2o(); + loaded_pix = getbpl2(); + } + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl2(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_n1_p2_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p2_ishres_dlores_spr(void) +static void lts_aga_fm0_dpf0_p2_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2(); + loaded_pix = getbpl2(); + } + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2(); + loaded_pix = getbpl2(); + } + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_dpf0_p2_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_n0_p4_ishres_dlores_spr(void) +static void lts_aga_fm0_dpf1_p2_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2e(); + loaded_pix = getbpl2(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl2o(); + loaded_pix = getbpl2(); + } + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl2(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2e(); + loaded_pix = getbpl2(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl2o(); + loaded_pix = getbpl2(); + } + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl2(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_dpf1_p2_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_n1_p4_ishres_dlores_spr(void) +static void lts_aga_fm0_ehb0_p2_ilores_dhires(void) { lts_null(); } -static void lts_aga_fm0_dpf0_p4_ishres_dlores_spr(void) +static void lts_aga_fm0_ehb0_p2_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_dpf1_p4_ishres_dlores_spr(void) +static void lts_aga_fm0_ehb1_p2_ilores_dhires(void) { lts_null(); } -static void lts_aga_fm0_ehb0_p4_ishres_dlores_spr(void) +static void lts_aga_fm0_ehb1_p2_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p4_ishres_dlores_spr(void) +static void lts_aga_fm0_ham0_p2_ilores_dhires(void) { lts_null(); } -static void lts_aga_fm0_ham0_p4_ishres_dlores_spr(void) +static void lts_aga_fm0_ham0_p2_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham1_p4_ishres_dlores_spr(void) +static void lts_aga_fm0_ham1_p2_ilores_dhires(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p4_ishres_dlores_spr(void) +static void lts_aga_fm0_ham1_p2_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p4_ishres_dlores_spr(void) +static void lts_aga_fm0_kehb0_p2_ilores_dhires(void) { lts_null(); } -static void lts_aga_fm0_n0_p6_ishres_dlores_spr(void) +static void lts_aga_fm0_kehb0_p2_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_n1_p6_ishres_dlores_spr(void) +static void lts_aga_fm0_kehb1_p2_ilores_dhires(void) { lts_null(); } -static void lts_aga_fm0_dpf0_p6_ishres_dlores_spr(void) +static void lts_aga_fm0_kehb1_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p4_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4(); + loaded_pix = getbpl4(); + } + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4(); + loaded_pix = getbpl4(); + } + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_n0_p4_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_dpf1_p6_ishres_dlores_spr(void) +static void lts_aga_fm0_n1_p4_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e(); + loaded_pix = getbpl4(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o(); + loaded_pix = getbpl4(); + } + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e(); + loaded_pix = getbpl4(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o(); + loaded_pix = getbpl4(); + } + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_n1_p4_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_ehb0_p6_ishres_dlores_spr(void) +static void lts_aga_fm0_dpf0_p4_ilores_dhires(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4(); + loaded_pix = getbpl4(); + } + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4(); + loaded_pix = getbpl4(); + } + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm0_ehb1_p6_ishres_dlores_spr(void) +static void lts_aga_fm0_dpf0_p4_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham0_p6_ishres_dlores_spr(void) +static void lts_aga_fm0_dpf1_p4_ilores_dhires(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e(); + loaded_pix = getbpl4(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o(); + loaded_pix = getbpl4(); + } + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e(); + loaded_pix = getbpl4(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o(); + loaded_pix = getbpl4(); + } + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm0_ham1_p6_ishres_dlores_spr(void) +static void lts_aga_fm0_dpf1_p4_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p6_ishres_dlores_spr(void) +static void lts_aga_fm0_ehb0_p4_ilores_dhires(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p6_ishres_dlores_spr(void) +static void lts_aga_fm0_ehb0_p4_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_n0_p8_ishres_dlores_spr(void) +static void lts_aga_fm0_ehb1_p4_ilores_dhires(void) { lts_null(); } -static void lts_aga_fm0_n1_p8_ishres_dlores_spr(void) +static void lts_aga_fm0_ehb1_p4_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_dpf0_p8_ishres_dlores_spr(void) +static void lts_aga_fm0_ham0_p4_ilores_dhires(void) { lts_null(); } -static void lts_aga_fm0_dpf1_p8_ishres_dlores_spr(void) +static void lts_aga_fm0_ham0_p4_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_ehb0_p8_ishres_dlores_spr(void) +static void lts_aga_fm0_ham1_p4_ilores_dhires(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p8_ishres_dlores_spr(void) +static void lts_aga_fm0_ham1_p4_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham0_p8_ishres_dlores_spr(void) +static void lts_aga_fm0_kehb0_p4_ilores_dhires(void) { lts_null(); } -static void lts_aga_fm0_ham1_p8_ishres_dlores_spr(void) +static void lts_aga_fm0_kehb0_p4_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p8_ishres_dlores_spr(void) +static void lts_aga_fm0_kehb1_p4_ilores_dhires(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p8_ishres_dlores_spr(void) +static void lts_aga_fm0_kehb1_p4_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_n0_p2_ilores_dhires(void) +static void lts_aga_fm0_n0_p6_ilores_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5186,13 +8586,13 @@ static void lts_aga_fm0_n0_p2_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2(); - loaded_pix = getbpl2(); + shiftbpl6(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; @@ -5210,13 +8610,13 @@ static void lts_aga_fm0_n0_p2_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2(); - loaded_pix = getbpl2(); + shiftbpl6(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; @@ -5257,7 +8657,11 @@ static void lts_aga_fm0_n0_p2_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_n1_p2_ilores_dhires(void) +static void lts_aga_fm0_n0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p6_ilores_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5283,24 +8687,24 @@ static void lts_aga_fm0_n1_p2_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2e(); - loaded_pix = getbpl2(); + shiftbpl6e(); + loaded_pix = getbpl6(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl2o(); - loaded_pix = getbpl2(); + shiftbpl6o(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; @@ -5318,24 +8722,24 @@ static void lts_aga_fm0_n1_p2_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2e(); - loaded_pix = getbpl2(); + shiftbpl6e(); + loaded_pix = getbpl6(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl2o(); - loaded_pix = getbpl2(); + shiftbpl6o(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; @@ -5376,7 +8780,11 @@ static void lts_aga_fm0_n1_p2_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p2_ilores_dhires(void) +static void lts_aga_fm0_n1_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p6_ilores_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5407,13 +8815,13 @@ static void lts_aga_fm0_dpf0_p2_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2(); - loaded_pix = getbpl2(); + shiftbpl6(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; @@ -5436,13 +8844,13 @@ static void lts_aga_fm0_dpf0_p2_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2(); - loaded_pix = getbpl2(); + shiftbpl6(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; @@ -5483,7 +8891,11 @@ static void lts_aga_fm0_dpf0_p2_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p2_ilores_dhires(void) +static void lts_aga_fm0_dpf0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p6_ilores_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5514,24 +8926,24 @@ static void lts_aga_fm0_dpf1_p2_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2e(); - loaded_pix = getbpl2(); + shiftbpl6e(); + loaded_pix = getbpl6(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl2o(); - loaded_pix = getbpl2(); + shiftbpl6o(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; @@ -5554,24 +8966,24 @@ static void lts_aga_fm0_dpf1_p2_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2e(); - loaded_pix = getbpl2(); + shiftbpl6e(); + loaded_pix = getbpl6(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl2o(); - loaded_pix = getbpl2(); + shiftbpl6o(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; @@ -5612,31 +9024,11 @@ static void lts_aga_fm0_dpf1_p2_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p2_ilores_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb1_p2_ilores_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham0_p2_ilores_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham1_p2_ilores_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb0_p2_ilores_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb1_p2_ilores_dhires(void) +static void lts_aga_fm0_dpf1_p6_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_n0_p4_ilores_dhires(void) +static void lts_aga_fm0_ehb0_p6_ilores_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5655,20 +9047,26 @@ static void lts_aga_fm0_n0_p4_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4(); + shiftbpl6(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; @@ -5679,20 +9077,26 @@ static void lts_aga_fm0_n0_p4_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + pix2 ^= bplcon4_denise_xor_val; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4(); + shiftbpl6(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; @@ -5733,7 +9137,11 @@ static void lts_aga_fm0_n0_p4_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_n1_p4_ilores_dhires(void) +static void lts_aga_fm0_ehb0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p6_ilores_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5752,31 +9160,37 @@ static void lts_aga_fm0_n1_p4_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4(); + shiftbpl6e(); + loaded_pix = getbpl6(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4(); + shiftbpl6o(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; @@ -5787,31 +9201,37 @@ static void lts_aga_fm0_n1_p4_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + pix2 ^= bplcon4_denise_xor_val; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4(); + shiftbpl6e(); + loaded_pix = getbpl6(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4(); + shiftbpl6o(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; @@ -5852,7 +9272,11 @@ static void lts_aga_fm0_n1_p4_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p4_ilores_dhires(void) +static void lts_aga_fm0_ehb1_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p6_ilores_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5871,25 +9295,20 @@ static void lts_aga_fm0_dpf0_p4_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4(); + shiftbpl6(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; @@ -5900,25 +9319,20 @@ static void lts_aga_fm0_dpf0_p4_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4(); + shiftbpl6(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; @@ -5959,7 +9373,11 @@ static void lts_aga_fm0_dpf0_p4_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p4_ilores_dhires(void) +static void lts_aga_fm0_ham0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p6_ilores_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5978,36 +9396,31 @@ static void lts_aga_fm0_dpf1_p4_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4(); + shiftbpl6e(); + loaded_pix = getbpl6(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4(); + shiftbpl6o(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; @@ -6018,36 +9431,31 @@ static void lts_aga_fm0_dpf1_p4_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4(); + shiftbpl6e(); + loaded_pix = getbpl6(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4(); + shiftbpl6o(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; @@ -6088,31 +9496,11 @@ static void lts_aga_fm0_dpf1_p4_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p4_ilores_dhires(void) +static void lts_aga_fm0_ham1_p6_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p4_ilores_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham0_p4_ilores_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham1_p4_ilores_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb0_p4_ilores_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb1_p4_ilores_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_n0_p6_ilores_dhires(void) +static void lts_aga_fm0_kehb0_p6_ilores_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6131,7 +9519,8 @@ static void lts_aga_fm0_n0_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } @@ -6155,7 +9544,8 @@ static void lts_aga_fm0_n0_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; } last_bpl_pix = pix2; } @@ -6209,7 +9599,11 @@ static void lts_aga_fm0_n0_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_n1_p6_ilores_dhires(void) +static void lts_aga_fm0_kehb0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p6_ilores_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6228,7 +9622,8 @@ static void lts_aga_fm0_n1_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } @@ -6263,7 +9658,8 @@ static void lts_aga_fm0_n1_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; } last_bpl_pix = pix2; } @@ -6328,7 +9724,11 @@ static void lts_aga_fm0_n1_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p6_ilores_dhires(void) +static void lts_aga_fm0_kehb1_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p8_ilores_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6347,25 +9747,20 @@ static void lts_aga_fm0_dpf0_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6(); + shiftbpl8(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl8(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; @@ -6376,25 +9771,20 @@ static void lts_aga_fm0_dpf0_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6(); + shiftbpl8(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl8(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; @@ -6435,7 +9825,11 @@ static void lts_aga_fm0_dpf0_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p6_ilores_dhires(void) +static void lts_aga_fm0_n0_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p8_ilores_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6454,36 +9848,31 @@ static void lts_aga_fm0_dpf1_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6(); + shiftbpl8e(); + loaded_pix = getbpl8(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6(); + shiftbpl8o(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; @@ -6494,36 +9883,31 @@ static void lts_aga_fm0_dpf1_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6(); + shiftbpl8e(); + loaded_pix = getbpl8(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6(); + shiftbpl8o(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; @@ -6564,7 +9948,11 @@ static void lts_aga_fm0_dpf1_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p6_ilores_dhires(void) +static void lts_aga_fm0_n1_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p8_ilores_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6583,26 +9971,25 @@ static void lts_aga_fm0_ehb0_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6(); + shiftbpl8(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl8(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; @@ -6613,26 +10000,25 @@ static void lts_aga_fm0_ehb0_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6(); + shiftbpl8(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl8(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; @@ -6673,7 +10059,11 @@ static void lts_aga_fm0_ehb0_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_ehb1_p6_ilores_dhires(void) +static void lts_aga_fm0_dpf0_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p8_ilores_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6692,37 +10082,36 @@ static void lts_aga_fm0_ehb1_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6(); + shiftbpl8e(); + loaded_pix = getbpl8(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6(); + shiftbpl8o(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; @@ -6733,37 +10122,36 @@ static void lts_aga_fm0_ehb1_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6(); + shiftbpl8e(); + loaded_pix = getbpl8(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6(); + shiftbpl8o(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; @@ -6804,7 +10192,27 @@ static void lts_aga_fm0_ehb1_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_ham0_p6_ilores_dhires(void) +static void lts_aga_fm0_dpf1_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p8_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p8_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p8_ilores_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6830,13 +10238,13 @@ static void lts_aga_fm0_ham0_p6_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6(); + shiftbpl8(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl8(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; @@ -6854,13 +10262,13 @@ static void lts_aga_fm0_ham0_p6_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6(); + shiftbpl8(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl8(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; @@ -6901,7 +10309,11 @@ static void lts_aga_fm0_ham0_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_ham1_p6_ilores_dhires(void) +static void lts_aga_fm0_ham0_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p8_ilores_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6927,24 +10339,24 @@ static void lts_aga_fm0_ham1_p6_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6(); + shiftbpl8e(); + loaded_pix = getbpl8(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6(); + shiftbpl8o(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; @@ -6962,24 +10374,24 @@ static void lts_aga_fm0_ham1_p6_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6(); + shiftbpl8e(); + loaded_pix = getbpl8(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6(); + shiftbpl8o(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; @@ -7020,7 +10432,27 @@ static void lts_aga_fm0_ham1_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_kehb0_p6_ilores_dhires(void) +static void lts_aga_fm0_ham1_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p8_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p8_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p2_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7032,6 +10464,7 @@ static void lts_aga_fm0_kehb0_p6_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -7039,24 +10472,32 @@ static void lts_aga_fm0_kehb0_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6(); + shiftbpl2(); + loaded_pix = getbpl2(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl2(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl2(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -7064,26 +10505,45 @@ static void lts_aga_fm0_kehb0_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6(); + shiftbpl2(); + loaded_pix = getbpl2(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl2(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl2(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -7119,7 +10579,11 @@ static void lts_aga_fm0_kehb0_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_kehb1_p6_ilores_dhires(void) +static void lts_aga_fm0_n0_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p2_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7131,6 +10595,7 @@ static void lts_aga_fm0_kehb1_p6_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -7138,35 +10603,43 @@ static void lts_aga_fm0_kehb1_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6(); + shiftbpl2e(); + loaded_pix = getbpl2(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6(); + shiftbpl2o(); + loaded_pix = getbpl2(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl2e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl2(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl2o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl2(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -7174,37 +10647,56 @@ static void lts_aga_fm0_kehb1_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6(); + shiftbpl2e(); + loaded_pix = getbpl2(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6(); + shiftbpl2o(); + loaded_pix = getbpl2(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl2e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl2(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl2o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl2(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -7240,7 +10732,11 @@ static void lts_aga_fm0_kehb1_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_n0_p8_ilores_dhires(void) +static void lts_aga_fm0_n1_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p2_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7252,6 +10748,7 @@ static void lts_aga_fm0_n0_p8_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -7259,23 +10756,37 @@ static void lts_aga_fm0_n0_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8(); + shiftbpl2(); + loaded_pix = getbpl2(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl2(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); + loaded_pix = getbpl2(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -7283,25 +10794,50 @@ static void lts_aga_fm0_n0_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8(); + shiftbpl2(); + loaded_pix = getbpl2(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl2(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); + loaded_pix = getbpl2(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -7337,7 +10873,11 @@ static void lts_aga_fm0_n0_p8_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_n1_p8_ilores_dhires(void) +static void lts_aga_fm0_dpf0_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p2_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7349,6 +10889,7 @@ static void lts_aga_fm0_n1_p8_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -7356,34 +10897,48 @@ static void lts_aga_fm0_n1_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8(); + shiftbpl2e(); + loaded_pix = getbpl2(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8(); + shiftbpl2o(); + loaded_pix = getbpl2(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl2e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); + loaded_pix = getbpl2(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl2o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl8(); + loaded_pix = getbpl2(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -7391,36 +10946,61 @@ static void lts_aga_fm0_n1_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8(); + shiftbpl2e(); + loaded_pix = getbpl2(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8(); + shiftbpl2o(); + loaded_pix = getbpl2(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl2e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); + loaded_pix = getbpl2(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl2o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl8(); + loaded_pix = getbpl2(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -7456,7 +11036,59 @@ static void lts_aga_fm0_n1_p8_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p8_ilores_dhires(void) +static void lts_aga_fm0_dpf1_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p2_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p2_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p2_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p2_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p2_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p2_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p4_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7468,6 +11100,7 @@ static void lts_aga_fm0_dpf0_p8_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -7475,28 +11108,32 @@ static void lts_aga_fm0_dpf0_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8(); + shiftbpl4(); + loaded_pix = getbpl4(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl4(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); + loaded_pix = getbpl4(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -7504,30 +11141,45 @@ static void lts_aga_fm0_dpf0_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8(); + shiftbpl4(); + loaded_pix = getbpl4(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl4(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); + loaded_pix = getbpl4(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -7563,7 +11215,11 @@ static void lts_aga_fm0_dpf0_p8_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p8_ilores_dhires(void) +static void lts_aga_fm0_n0_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p4_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7575,6 +11231,7 @@ static void lts_aga_fm0_dpf1_p8_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -7582,39 +11239,43 @@ static void lts_aga_fm0_dpf1_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8(); + shiftbpl4e(); + loaded_pix = getbpl4(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8(); + shiftbpl4o(); + loaded_pix = getbpl4(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl4e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); + loaded_pix = getbpl4(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl4o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl8(); + loaded_pix = getbpl4(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -7622,41 +11283,56 @@ static void lts_aga_fm0_dpf1_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8(); + shiftbpl4e(); + loaded_pix = getbpl4(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8(); + shiftbpl4o(); + loaded_pix = getbpl4(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl4e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); + loaded_pix = getbpl4(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl4o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl8(); + loaded_pix = getbpl4(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -7692,15 +11368,11 @@ static void lts_aga_fm0_dpf1_p8_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p8_ilores_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb1_p8_ilores_dhires(void) +static void lts_aga_fm0_n1_p4_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham0_p8_ilores_dhires(void) +static void lts_aga_fm0_dpf0_p4_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7712,6 +11384,7 @@ static void lts_aga_fm0_ham0_p8_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -7719,23 +11392,37 @@ static void lts_aga_fm0_ham0_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8(); + shiftbpl4(); + loaded_pix = getbpl4(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl4(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); + loaded_pix = getbpl4(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -7743,25 +11430,50 @@ static void lts_aga_fm0_ham0_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8(); + shiftbpl4(); + loaded_pix = getbpl4(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl4(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); + loaded_pix = getbpl4(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -7797,7 +11509,11 @@ static void lts_aga_fm0_ham0_p8_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_ham1_p8_ilores_dhires(void) +static void lts_aga_fm0_dpf0_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p4_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7809,6 +11525,7 @@ static void lts_aga_fm0_ham1_p8_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -7816,34 +11533,48 @@ static void lts_aga_fm0_ham1_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8(); + shiftbpl4e(); + loaded_pix = getbpl4(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8(); + shiftbpl4o(); + loaded_pix = getbpl4(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl4e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); + loaded_pix = getbpl4(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl4o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl8(); + loaded_pix = getbpl4(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -7851,36 +11582,61 @@ static void lts_aga_fm0_ham1_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8(); + shiftbpl4e(); + loaded_pix = getbpl4(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8(); + shiftbpl4o(); + loaded_pix = getbpl4(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl4e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); + loaded_pix = getbpl4(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl4o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl8(); + loaded_pix = getbpl4(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -7916,15 +11672,59 @@ static void lts_aga_fm0_ham1_p8_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm0_kehb0_p8_ilores_dhires(void) +static void lts_aga_fm0_dpf1_p4_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p8_ilores_dhires(void) +static void lts_aga_fm0_ehb0_p4_ilores_dhires_spr(void) { lts_null(); } -static void lts_aga_fm0_n0_p2_ilores_dhires_spr(void) +static void lts_aga_fm0_ehb0_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p4_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p4_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p4_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p4_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p4_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7951,13 +11751,13 @@ static void lts_aga_fm0_n0_p2_ilores_dhires_spr(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2(); - loaded_pix = getbpl2(); + shiftbpl6(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { @@ -7984,13 +11784,13 @@ static void lts_aga_fm0_n0_p2_ilores_dhires_spr(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2(); - loaded_pix = getbpl2(); + shiftbpl6(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { @@ -8051,7 +11851,11 @@ static void lts_aga_fm0_n0_p2_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_n1_p2_ilores_dhires_spr(void) +static void lts_aga_fm0_n0_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8078,24 +11882,24 @@ static void lts_aga_fm0_n1_p2_ilores_dhires_spr(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2e(); - loaded_pix = getbpl2(); + shiftbpl6e(); + loaded_pix = getbpl6(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl2o(); - loaded_pix = getbpl2(); + shiftbpl6o(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { @@ -8122,24 +11926,24 @@ static void lts_aga_fm0_n1_p2_ilores_dhires_spr(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2e(); - loaded_pix = getbpl2(); + shiftbpl6e(); + loaded_pix = getbpl6(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl2o(); - loaded_pix = getbpl2(); + shiftbpl6o(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { @@ -8200,7 +12004,11 @@ static void lts_aga_fm0_n1_p2_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p2_ilores_dhires_spr(void) +static void lts_aga_fm0_n1_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8232,13 +12040,13 @@ static void lts_aga_fm0_dpf0_p2_ilores_dhires_spr(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2(); - loaded_pix = getbpl2(); + shiftbpl6(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { @@ -8270,13 +12078,13 @@ static void lts_aga_fm0_dpf0_p2_ilores_dhires_spr(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2(); - loaded_pix = getbpl2(); + shiftbpl6(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { @@ -8337,7 +12145,11 @@ static void lts_aga_fm0_dpf0_p2_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p2_ilores_dhires_spr(void) +static void lts_aga_fm0_dpf0_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8369,24 +12181,24 @@ static void lts_aga_fm0_dpf1_p2_ilores_dhires_spr(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2e(); - loaded_pix = getbpl2(); + shiftbpl6e(); + loaded_pix = getbpl6(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl2o(); - loaded_pix = getbpl2(); + shiftbpl6o(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { @@ -8418,24 +12230,24 @@ static void lts_aga_fm0_dpf1_p2_ilores_dhires_spr(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2e(); - loaded_pix = getbpl2(); + shiftbpl6e(); + loaded_pix = getbpl6(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl2o(); - loaded_pix = getbpl2(); + shiftbpl6o(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl2(); + loaded_pix = getbpl6(); } uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { @@ -8496,31 +12308,11 @@ static void lts_aga_fm0_dpf1_p2_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p2_ilores_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb1_p2_ilores_dhires_spr(void) +static void lts_aga_fm0_dpf1_p6_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham0_p2_ilores_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham1_p2_ilores_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb0_p2_ilores_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb1_p2_ilores_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_n0_p4_ilores_dhires_spr(void) +static void lts_aga_fm0_ehb0_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8540,20 +12332,26 @@ static void lts_aga_fm0_n0_p4_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4(); + shiftbpl6(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { @@ -8573,20 +12371,26 @@ static void lts_aga_fm0_n0_p4_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + pix2 ^= bplcon4_denise_xor_val; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4(); + shiftbpl6(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { @@ -8647,7 +12451,11 @@ static void lts_aga_fm0_n0_p4_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_n1_p4_ilores_dhires_spr(void) +static void lts_aga_fm0_ehb0_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8667,31 +12475,37 @@ static void lts_aga_fm0_n1_p4_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4(); + shiftbpl6e(); + loaded_pix = getbpl6(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4(); + shiftbpl6o(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { @@ -8711,31 +12525,37 @@ static void lts_aga_fm0_n1_p4_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + pix2 ^= bplcon4_denise_xor_val; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4(); + shiftbpl6e(); + loaded_pix = getbpl6(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4(); + shiftbpl6o(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { @@ -8796,7 +12616,11 @@ static void lts_aga_fm0_n1_p4_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p4_ilores_dhires_spr(void) +static void lts_aga_fm0_ehb1_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8816,25 +12640,20 @@ static void lts_aga_fm0_dpf0_p4_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4(); + shiftbpl6(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { @@ -8854,25 +12673,20 @@ static void lts_aga_fm0_dpf0_p4_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4(); + shiftbpl6(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { @@ -8933,7 +12747,11 @@ static void lts_aga_fm0_dpf0_p4_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p4_ilores_dhires_spr(void) +static void lts_aga_fm0_ham0_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8953,36 +12771,31 @@ static void lts_aga_fm0_dpf1_p4_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4(); + shiftbpl6e(); + loaded_pix = getbpl6(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4(); + shiftbpl6o(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { @@ -9002,36 +12815,31 @@ static void lts_aga_fm0_dpf1_p4_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4(); + shiftbpl6e(); + loaded_pix = getbpl6(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4(); + shiftbpl6o(); + loaded_pix = getbpl6(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl4(); + loaded_pix = getbpl6(); } uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { @@ -9092,31 +12900,11 @@ static void lts_aga_fm0_dpf1_p4_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p4_ilores_dhires_spr(void) +static void lts_aga_fm0_ham1_p6_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p4_ilores_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham0_p4_ilores_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham1_p4_ilores_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb0_p4_ilores_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb1_p4_ilores_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_n0_p6_ilores_dhires_spr(void) +static void lts_aga_fm0_kehb0_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9136,7 +12924,8 @@ static void lts_aga_fm0_n0_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } @@ -9169,7 +12958,8 @@ static void lts_aga_fm0_n0_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; } last_bpl_pix = pix2; } @@ -9243,7 +13033,11 @@ static void lts_aga_fm0_n0_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_n1_p6_ilores_dhires_spr(void) +static void lts_aga_fm0_kehb0_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9263,7 +13057,8 @@ static void lts_aga_fm0_n1_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } @@ -9307,7 +13102,8 @@ static void lts_aga_fm0_n1_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; } last_bpl_pix = pix2; } @@ -9392,7 +13188,11 @@ static void lts_aga_fm0_n1_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p6_ilores_dhires_spr(void) +static void lts_aga_fm0_kehb1_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p8_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9412,25 +13212,20 @@ static void lts_aga_fm0_dpf0_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6(); + shiftbpl8(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl8(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { @@ -9450,25 +13245,20 @@ static void lts_aga_fm0_dpf0_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6(); + shiftbpl8(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl8(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { @@ -9529,7 +13319,11 @@ static void lts_aga_fm0_dpf0_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p6_ilores_dhires_spr(void) +static void lts_aga_fm0_n0_p8_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p8_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9549,36 +13343,31 @@ static void lts_aga_fm0_dpf1_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6(); + shiftbpl8e(); + loaded_pix = getbpl8(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6(); + shiftbpl8o(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { @@ -9598,36 +13387,31 @@ static void lts_aga_fm0_dpf1_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6(); + shiftbpl8e(); + loaded_pix = getbpl8(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6(); + shiftbpl8o(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { @@ -9688,7 +13472,11 @@ static void lts_aga_fm0_dpf1_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p6_ilores_dhires_spr(void) +static void lts_aga_fm0_n1_p8_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p8_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9708,26 +13496,25 @@ static void lts_aga_fm0_ehb0_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6(); + shiftbpl8(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl8(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { @@ -9747,26 +13534,25 @@ static void lts_aga_fm0_ehb0_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6(); + shiftbpl8(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl8(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { @@ -9827,7 +13613,11 @@ static void lts_aga_fm0_ehb0_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_ehb1_p6_ilores_dhires_spr(void) +static void lts_aga_fm0_dpf0_p8_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p8_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9847,37 +13637,36 @@ static void lts_aga_fm0_ehb1_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6(); + shiftbpl8e(); + loaded_pix = getbpl8(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6(); + shiftbpl8o(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { @@ -9897,37 +13686,36 @@ static void lts_aga_fm0_ehb1_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6(); + shiftbpl8e(); + loaded_pix = getbpl8(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6(); + shiftbpl8o(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { @@ -9988,7 +13776,27 @@ static void lts_aga_fm0_ehb1_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_ham0_p6_ilores_dhires_spr(void) +static void lts_aga_fm0_dpf1_p8_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p8_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p8_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p8_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p8_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p8_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10015,13 +13823,13 @@ static void lts_aga_fm0_ham0_p6_ilores_dhires_spr(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6(); + shiftbpl8(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl8(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { @@ -10048,13 +13856,13 @@ static void lts_aga_fm0_ham0_p6_ilores_dhires_spr(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6(); + shiftbpl8(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl8(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { @@ -10115,7 +13923,11 @@ static void lts_aga_fm0_ham0_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_ham1_p6_ilores_dhires_spr(void) +static void lts_aga_fm0_ham0_p8_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p8_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10142,24 +13954,24 @@ static void lts_aga_fm0_ham1_p6_ilores_dhires_spr(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6(); + shiftbpl8e(); + loaded_pix = getbpl8(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6(); + shiftbpl8o(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { @@ -10186,24 +13998,24 @@ static void lts_aga_fm0_ham1_p6_ilores_dhires_spr(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6(); + shiftbpl8e(); + loaded_pix = getbpl8(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6(); + shiftbpl8o(); + loaded_pix = getbpl8(); } if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl6(); + loaded_pix = getbpl8(); } uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { @@ -10264,7 +14076,27 @@ static void lts_aga_fm0_ham1_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_kehb0_p6_ilores_dhires_spr(void) +static void lts_aga_fm0_ham1_p8_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p8_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p8_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p8_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p8_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p2_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10276,7 +14108,6 @@ static void lts_aga_fm0_kehb0_p6_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -10284,33 +14115,17 @@ static void lts_aga_fm0_kehb0_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6(); - } - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); } + loaded_pix = getbpl2(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -10318,46 +14133,19 @@ static void lts_aga_fm0_kehb0_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6(); - } - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); } + loaded_pix = getbpl2(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -10393,7 +14181,11 @@ static void lts_aga_fm0_kehb0_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_kehb1_p6_ilores_dhires_spr(void) +static void lts_aga_fm0_n0_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p2_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10405,7 +14197,6 @@ static void lts_aga_fm0_kehb1_p6_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -10413,44 +14204,20 @@ static void lts_aga_fm0_kehb1_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6(); - } - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -10458,57 +14225,22 @@ static void lts_aga_fm0_kehb1_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6(); - } - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -10544,7 +14276,11 @@ static void lts_aga_fm0_kehb1_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_n0_p8_ilores_dhires_spr(void) +static void lts_aga_fm0_n1_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p2_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10556,7 +14292,6 @@ static void lts_aga_fm0_n0_p8_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -10564,32 +14299,22 @@ static void lts_aga_fm0_n0_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8(); - } - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); } + loaded_pix = getbpl2(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -10597,45 +14322,24 @@ static void lts_aga_fm0_n0_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8(); - } - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); } + loaded_pix = getbpl2(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -10671,7 +14375,11 @@ static void lts_aga_fm0_n0_p8_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_n1_p8_ilores_dhires_spr(void) +static void lts_aga_fm0_dpf0_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p2_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10683,7 +14391,6 @@ static void lts_aga_fm0_n1_p8_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -10691,43 +14398,25 @@ static void lts_aga_fm0_n1_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8(); - } - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -10735,56 +14424,27 @@ static void lts_aga_fm0_n1_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8(); - } - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -10820,7 +14480,59 @@ static void lts_aga_fm0_n1_p8_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p8_ilores_dhires_spr(void) +static void lts_aga_fm0_dpf1_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p2_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p2_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p2_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p2_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p2_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p2_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p4_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10832,7 +14544,6 @@ static void lts_aga_fm0_dpf0_p8_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -10840,37 +14551,17 @@ static void lts_aga_fm0_dpf0_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8(); - } - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } + loaded_pix = getbpl4(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -10878,50 +14569,19 @@ static void lts_aga_fm0_dpf0_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; - } - last_bpl_pix = pix2; - } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8(); - } - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } + last_bpl_pix = pix2; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } + loaded_pix = getbpl4(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -10957,7 +14617,11 @@ static void lts_aga_fm0_dpf0_p8_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p8_ilores_dhires_spr(void) +static void lts_aga_fm0_n0_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p4_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10969,7 +14633,6 @@ static void lts_aga_fm0_dpf1_p8_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -10977,48 +14640,20 @@ static void lts_aga_fm0_dpf1_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8(); - } - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -11026,61 +14661,22 @@ static void lts_aga_fm0_dpf1_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8(); - } - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -11116,15 +14712,11 @@ static void lts_aga_fm0_dpf1_p8_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p8_ilores_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb1_p8_ilores_dhires_spr(void) +static void lts_aga_fm0_n1_p4_ihires_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham0_p8_ilores_dhires_spr(void) +static void lts_aga_fm0_dpf0_p4_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11136,7 +14728,6 @@ static void lts_aga_fm0_ham0_p8_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -11144,32 +14735,22 @@ static void lts_aga_fm0_ham0_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8(); - } - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } + loaded_pix = getbpl4(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -11177,45 +14758,24 @@ static void lts_aga_fm0_ham0_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8(); - } - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } + loaded_pix = getbpl4(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -11251,7 +14811,11 @@ static void lts_aga_fm0_ham0_p8_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_ham1_p8_ilores_dhires_spr(void) +static void lts_aga_fm0_dpf0_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p4_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11263,7 +14827,6 @@ static void lts_aga_fm0_ham1_p8_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -11271,43 +14834,25 @@ static void lts_aga_fm0_ham1_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8(); - } - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -11315,56 +14860,27 @@ static void lts_aga_fm0_ham1_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8(); - } - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -11400,15 +14916,219 @@ static void lts_aga_fm0_ham1_p8_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_kehb0_p8_ilores_dhires_spr(void) +static void lts_aga_fm0_dpf1_p4_ihires_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p8_ilores_dhires_spr(void) +static void lts_aga_fm0_ehb0_p4_ihires_dhires(void) { lts_null(); } -static void lts_aga_fm0_n0_p2_ihires_dhires(void) +static void lts_aga_fm0_ehb0_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p4_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p4_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p4_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p4_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p4_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p6_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p6_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p6_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p6_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p6_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p6_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p6_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p6_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p6_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p6_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p8_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p8_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p8_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p8_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p8_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p8_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p8_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p8_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p8_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p8_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p2_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11420,6 +15140,7 @@ static void lts_aga_fm0_n0_p2_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -11436,8 +15157,17 @@ static void lts_aga_fm0_n0_p2_ihires_dhires(void) copybpl2(); } loaded_pix = getbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -11454,10 +15184,30 @@ static void lts_aga_fm0_n0_p2_ihires_dhires(void) copybpl2(); } loaded_pix = getbpl2(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -11493,7 +15243,11 @@ static void lts_aga_fm0_n0_p2_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm0_n1_p2_ihires_dhires(void) +static void lts_aga_fm0_n0_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p2_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11505,6 +15259,7 @@ static void lts_aga_fm0_n1_p2_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -11524,8 +15279,17 @@ static void lts_aga_fm0_n1_p2_ihires_dhires(void) copybpl2o(); } loaded_pix = getbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -11545,10 +15309,30 @@ static void lts_aga_fm0_n1_p2_ihires_dhires(void) copybpl2o(); } loaded_pix = getbpl2(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -11584,7 +15368,11 @@ static void lts_aga_fm0_n1_p2_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p2_ihires_dhires(void) +static void lts_aga_fm0_n1_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p2_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11596,6 +15384,7 @@ static void lts_aga_fm0_dpf0_p2_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -11617,8 +15406,17 @@ static void lts_aga_fm0_dpf0_p2_ihires_dhires(void) copybpl2(); } loaded_pix = getbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -11640,10 +15438,30 @@ static void lts_aga_fm0_dpf0_p2_ihires_dhires(void) copybpl2(); } loaded_pix = getbpl2(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -11679,7 +15497,11 @@ static void lts_aga_fm0_dpf0_p2_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p2_ihires_dhires(void) +static void lts_aga_fm0_dpf0_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p2_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11691,6 +15513,7 @@ static void lts_aga_fm0_dpf1_p2_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -11715,8 +15538,17 @@ static void lts_aga_fm0_dpf1_p2_ihires_dhires(void) copybpl2o(); } loaded_pix = getbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -11741,10 +15573,30 @@ static void lts_aga_fm0_dpf1_p2_ihires_dhires(void) copybpl2o(); } loaded_pix = getbpl2(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -11780,31 +15632,59 @@ static void lts_aga_fm0_dpf1_p2_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p2_ihires_dhires(void) +static void lts_aga_fm0_dpf1_p2_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p2_ihires_dhires(void) +static void lts_aga_fm0_ehb0_p2_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm0_ham0_p2_ihires_dhires(void) +static void lts_aga_fm0_ehb0_p2_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham1_p2_ihires_dhires(void) +static void lts_aga_fm0_ehb1_p2_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p2_ihires_dhires(void) +static void lts_aga_fm0_ehb1_p2_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p2_ihires_dhires(void) +static void lts_aga_fm0_ham0_p2_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm0_n0_p4_ihires_dhires(void) +static void lts_aga_fm0_ham0_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p2_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p2_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p2_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p4_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11816,6 +15696,7 @@ static void lts_aga_fm0_n0_p4_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -11832,8 +15713,17 @@ static void lts_aga_fm0_n0_p4_ihires_dhires(void) copybpl4(); } loaded_pix = getbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -11850,10 +15740,30 @@ static void lts_aga_fm0_n0_p4_ihires_dhires(void) copybpl4(); } loaded_pix = getbpl4(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -11889,7 +15799,11 @@ static void lts_aga_fm0_n0_p4_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm0_n1_p4_ihires_dhires(void) +static void lts_aga_fm0_n0_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p4_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11901,6 +15815,7 @@ static void lts_aga_fm0_n1_p4_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -11920,8 +15835,17 @@ static void lts_aga_fm0_n1_p4_ihires_dhires(void) copybpl4o(); } loaded_pix = getbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -11941,10 +15865,30 @@ static void lts_aga_fm0_n1_p4_ihires_dhires(void) copybpl4o(); } loaded_pix = getbpl4(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -11980,7 +15924,11 @@ static void lts_aga_fm0_n1_p4_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p4_ihires_dhires(void) +static void lts_aga_fm0_n1_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p4_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11992,6 +15940,7 @@ static void lts_aga_fm0_dpf0_p4_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -12013,8 +15962,17 @@ static void lts_aga_fm0_dpf0_p4_ihires_dhires(void) copybpl4(); } loaded_pix = getbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -12036,10 +15994,30 @@ static void lts_aga_fm0_dpf0_p4_ihires_dhires(void) copybpl4(); } loaded_pix = getbpl4(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -12075,7 +16053,11 @@ static void lts_aga_fm0_dpf0_p4_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p4_ihires_dhires(void) +static void lts_aga_fm0_dpf0_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p4_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12087,6 +16069,7 @@ static void lts_aga_fm0_dpf1_p4_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -12111,8 +16094,17 @@ static void lts_aga_fm0_dpf1_p4_ihires_dhires(void) copybpl4o(); } loaded_pix = getbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -12137,10 +16129,30 @@ static void lts_aga_fm0_dpf1_p4_ihires_dhires(void) copybpl4o(); } loaded_pix = getbpl4(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -12176,111 +16188,219 @@ static void lts_aga_fm0_dpf1_p4_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p4_ihires_dhires(void) +static void lts_aga_fm0_dpf1_p4_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p4_ihires_dhires(void) +static void lts_aga_fm0_ehb0_p4_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm0_ham0_p4_ihires_dhires(void) +static void lts_aga_fm0_ehb0_p4_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham1_p4_ihires_dhires(void) +static void lts_aga_fm0_ehb1_p4_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p4_ihires_dhires(void) +static void lts_aga_fm0_ehb1_p4_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p4_ihires_dhires(void) +static void lts_aga_fm0_ham0_p4_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm0_n0_p6_ihires_dhires(void) +static void lts_aga_fm0_ham0_p4_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_n1_p6_ihires_dhires(void) +static void lts_aga_fm0_ham1_p4_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm0_dpf0_p6_ihires_dhires(void) +static void lts_aga_fm0_ham1_p4_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_dpf1_p6_ihires_dhires(void) +static void lts_aga_fm0_kehb0_p4_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm0_ehb0_p6_ihires_dhires(void) +static void lts_aga_fm0_kehb0_p4_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p6_ihires_dhires(void) +static void lts_aga_fm0_kehb1_p4_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm0_ham0_p6_ihires_dhires(void) +static void lts_aga_fm0_kehb1_p4_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham1_p6_ihires_dhires(void) +static void lts_aga_fm0_n0_p6_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p6_ihires_dhires(void) +static void lts_aga_fm0_n0_p6_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p6_ihires_dhires(void) +static void lts_aga_fm0_n1_p6_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm0_n0_p8_ihires_dhires(void) +static void lts_aga_fm0_n1_p6_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_n1_p8_ihires_dhires(void) +static void lts_aga_fm0_dpf0_p6_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm0_dpf0_p8_ihires_dhires(void) +static void lts_aga_fm0_dpf0_p6_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_dpf1_p8_ihires_dhires(void) +static void lts_aga_fm0_dpf1_p6_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm0_ehb0_p8_ihires_dhires(void) +static void lts_aga_fm0_dpf1_p6_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p8_ihires_dhires(void) +static void lts_aga_fm0_ehb0_p6_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm0_ham0_p8_ihires_dhires(void) +static void lts_aga_fm0_ehb0_p6_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham1_p8_ihires_dhires(void) +static void lts_aga_fm0_ehb1_p6_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p8_ihires_dhires(void) +static void lts_aga_fm0_ehb1_p6_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p8_ihires_dhires(void) +static void lts_aga_fm0_ham0_p6_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm0_n0_p2_ihires_dhires_spr(void) +static void lts_aga_fm0_ham0_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p6_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p6_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p6_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p8_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p8_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p8_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p8_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p8_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p8_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p8_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p8_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p8_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p8_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p2_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12292,7 +16412,6 @@ static void lts_aga_fm0_n0_p2_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -12305,21 +16424,13 @@ static void lts_aga_fm0_n0_p2_ihires_dhires_spr(void) last_bpl_pix = pix0; } shiftbpl2(); - if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[0]) { copybpl2(); } loaded_pix = getbpl2(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } - } loaded_pixs[0] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -12332,34 +16443,15 @@ static void lts_aga_fm0_n0_p2_ihires_dhires_spr(void) last_bpl_pix = pix2; } shiftbpl2(); - if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[0]) { copybpl2(); } loaded_pix = getbpl2(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } - } loaded_pixs[2] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -12395,7 +16487,7 @@ static void lts_aga_fm0_n0_p2_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_n1_p2_ihires_dhires_spr(void) +static void lts_aga_fm0_n0_p2_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12407,7 +16499,6 @@ static void lts_aga_fm0_n1_p2_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -12420,24 +16511,29 @@ static void lts_aga_fm0_n1_p2_ihires_dhires_spr(void) last_bpl_pix = pix0; } shiftbpl2(); - if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + if (bpldat_copy[0] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2(); } loaded_pix = getbpl2(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -12450,37 +16546,33 @@ static void lts_aga_fm0_n1_p2_ihires_dhires_spr(void) last_bpl_pix = pix2; } shiftbpl2(); - if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + if (bpldat_copy[0] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2(); } loaded_pix = getbpl2(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 3) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -12516,7 +16608,7 @@ static void lts_aga_fm0_n1_p2_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p2_ihires_dhires_spr(void) +static void lts_aga_fm0_n1_p2_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12528,7 +16620,6 @@ static void lts_aga_fm0_dpf0_p2_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -12536,31 +16627,21 @@ static void lts_aga_fm0_dpf0_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } shiftbpl2(); - if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - loaded_pix = getbpl2(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2(); loaded_pixs[0] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -12568,44 +16649,23 @@ static void lts_aga_fm0_dpf0_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } shiftbpl2(); - if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - loaded_pix = getbpl2(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2(); loaded_pixs[2] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -12641,7 +16701,7 @@ static void lts_aga_fm0_dpf0_p2_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p2_ihires_dhires_spr(void) +static void lts_aga_fm0_n1_p2_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12653,7 +16713,6 @@ static void lts_aga_fm0_dpf1_p2_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -12661,34 +16720,40 @@ static void lts_aga_fm0_dpf1_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } shiftbpl2(); - if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[0]) { copybpl2e(); } - if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[1]) { copybpl2o(); } loaded_pix = getbpl2(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 15) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -12696,47 +16761,44 @@ static void lts_aga_fm0_dpf1_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } shiftbpl2(); - if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[0]) { copybpl2e(); } - if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[1]) { copybpl2o(); } loaded_pix = getbpl2(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 3) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 3) & 15) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -12772,31 +16834,7 @@ static void lts_aga_fm0_dpf1_p2_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p2_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb1_p2_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham0_p2_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham1_p2_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb0_p2_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb1_p2_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm0_n0_p4_ihires_dhires_spr(void) +static void lts_aga_fm0_dpf0_p2_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12808,7 +16846,6 @@ static void lts_aga_fm0_n0_p4_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -12816,26 +16853,23 @@ static void lts_aga_fm0_n0_p4_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); - } - loaded_pix = getbpl4(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2(); } + loaded_pix = getbpl2(); loaded_pixs[0] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -12843,39 +16877,25 @@ static void lts_aga_fm0_n0_p4_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); - } - loaded_pix = getbpl4(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2(); } + loaded_pix = getbpl2(); loaded_pixs[2] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -12911,7 +16931,7 @@ static void lts_aga_fm0_n0_p4_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_n1_p4_ihires_dhires_spr(void) +static void lts_aga_fm0_dpf0_p2_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12923,7 +16943,6 @@ static void lts_aga_fm0_n1_p4_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -12931,29 +16950,44 @@ static void lts_aga_fm0_n1_p4_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2(); } - loaded_pix = getbpl4(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl2(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -12961,42 +16995,48 @@ static void lts_aga_fm0_n1_p4_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2(); } - loaded_pix = getbpl4(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pix = getbpl2(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 3) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -13032,7 +17072,7 @@ static void lts_aga_fm0_n1_p4_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p4_ihires_dhires_spr(void) +static void lts_aga_fm0_dpf1_p2_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13044,7 +17084,6 @@ static void lts_aga_fm0_dpf0_p4_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -13061,22 +17100,17 @@ static void lts_aga_fm0_dpf0_p4_ihires_dhires_spr(void) } last_bpl_pix = pix0; } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - loaded_pix = getbpl4(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2(); loaded_pixs[0] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -13093,35 +17127,19 @@ static void lts_aga_fm0_dpf0_p4_ihires_dhires_spr(void) } last_bpl_pix = pix2; } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - loaded_pix = getbpl4(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2(); loaded_pixs[2] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -13157,7 +17175,7 @@ static void lts_aga_fm0_dpf0_p4_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p4_ihires_dhires_spr(void) +static void lts_aga_fm0_dpf1_p2_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13169,7 +17187,6 @@ static void lts_aga_fm0_dpf1_p4_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -13186,25 +17203,41 @@ static void lts_aga_fm0_dpf1_p4_ihires_dhires_spr(void) } last_bpl_pix = pix0; } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + if (bpldat_copy[1] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } - loaded_pix = getbpl4(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl2(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 15) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -13221,38 +17254,45 @@ static void lts_aga_fm0_dpf1_p4_ihires_dhires_spr(void) } last_bpl_pix = pix2; } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + if (bpldat_copy[1] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } - loaded_pix = getbpl4(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pix = getbpl2(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 3) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 3) & 15) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -13288,111 +17328,295 @@ static void lts_aga_fm0_dpf1_p4_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p4_ihires_dhires_spr(void) +static void lts_aga_fm0_ehb0_p2_ishres_dhires(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p4_ihires_dhires_spr(void) +static void lts_aga_fm0_ehb0_p2_ishres_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham0_p4_ihires_dhires_spr(void) +static void lts_aga_fm0_ehb1_p2_ishres_dhires(void) { lts_null(); } -static void lts_aga_fm0_ham1_p4_ihires_dhires_spr(void) +static void lts_aga_fm0_ehb1_p2_ishres_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p4_ihires_dhires_spr(void) +static void lts_aga_fm0_ham0_p2_ishres_dhires(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p4_ihires_dhires_spr(void) +static void lts_aga_fm0_ham0_p2_ishres_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_n0_p6_ihires_dhires_spr(void) +static void lts_aga_fm0_ham1_p2_ishres_dhires(void) { lts_null(); } -static void lts_aga_fm0_n1_p6_ihires_dhires_spr(void) +static void lts_aga_fm0_ham1_p2_ishres_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_dpf0_p6_ihires_dhires_spr(void) +static void lts_aga_fm0_kehb0_p2_ishres_dhires(void) { lts_null(); } -static void lts_aga_fm0_dpf1_p6_ihires_dhires_spr(void) +static void lts_aga_fm0_kehb0_p2_ishres_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_ehb0_p6_ihires_dhires_spr(void) +static void lts_aga_fm0_kehb1_p2_ishres_dhires(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p6_ihires_dhires_spr(void) +static void lts_aga_fm0_kehb1_p2_ishres_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham0_p6_ihires_dhires_spr(void) +static void lts_aga_fm0_n0_p4_ishres_dhires(void) { lts_null(); } -static void lts_aga_fm0_ham1_p6_ihires_dhires_spr(void) +static void lts_aga_fm0_n0_p4_ishres_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p6_ihires_dhires_spr(void) +static void lts_aga_fm0_n1_p4_ishres_dhires(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p6_ihires_dhires_spr(void) +static void lts_aga_fm0_n1_p4_ishres_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_n0_p8_ihires_dhires_spr(void) +static void lts_aga_fm0_dpf0_p4_ishres_dhires(void) { lts_null(); } -static void lts_aga_fm0_n1_p8_ihires_dhires_spr(void) +static void lts_aga_fm0_dpf0_p4_ishres_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_dpf0_p8_ihires_dhires_spr(void) +static void lts_aga_fm0_dpf1_p4_ishres_dhires(void) { lts_null(); } -static void lts_aga_fm0_dpf1_p8_ihires_dhires_spr(void) +static void lts_aga_fm0_dpf1_p4_ishres_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_ehb0_p8_ihires_dhires_spr(void) +static void lts_aga_fm0_ehb0_p4_ishres_dhires(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p8_ihires_dhires_spr(void) +static void lts_aga_fm0_ehb0_p4_ishres_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_ham0_p8_ihires_dhires_spr(void) +static void lts_aga_fm0_ehb1_p4_ishres_dhires(void) { lts_null(); } -static void lts_aga_fm0_ham1_p8_ihires_dhires_spr(void) +static void lts_aga_fm0_ehb1_p4_ishres_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p8_ihires_dhires_spr(void) +static void lts_aga_fm0_ham0_p4_ishres_dhires(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p8_ihires_dhires_spr(void) +static void lts_aga_fm0_ham0_p4_ishres_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm0_n0_p2_ishres_dhires(void) +static void lts_aga_fm0_ham1_p4_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p4_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p4_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p4_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p4_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p4_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf0_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p2_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13404,6 +17628,7 @@ static void lts_aga_fm0_n0_p2_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -13420,9 +17645,18 @@ static void lts_aga_fm0_n0_p2_ishres_dhires(void) copybpl2(); } loaded_pix = getbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; shiftbpl2(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -13439,11 +17673,31 @@ static void lts_aga_fm0_n0_p2_ishres_dhires(void) copybpl2(); } loaded_pix = getbpl2(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -13479,7 +17733,7 @@ static void lts_aga_fm0_n0_p2_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm0_n1_p2_ishres_dhires(void) +static void lts_aga_fm0_n0_p2_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13491,6 +17745,7 @@ static void lts_aga_fm0_n1_p2_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -13504,15 +17759,37 @@ static void lts_aga_fm0_n1_p2_ishres_dhires(void) } shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[0]) { - copybpl2e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl2(); } loaded_pix = getbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -13526,17 +17803,54 @@ static void lts_aga_fm0_n1_p2_ishres_dhires(void) } shiftbpl2(); if (bpldat_copy[0] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[0]) { - copybpl2e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl2(); } loaded_pix = getbpl2(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 3) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -13572,7 +17886,7 @@ static void lts_aga_fm0_n1_p2_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p2_ishres_dhires(void) +static void lts_aga_fm0_n1_p2_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13584,6 +17898,7 @@ static void lts_aga_fm0_dpf0_p2_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -13591,23 +17906,30 @@ static void lts_aga_fm0_dpf0_p2_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } loaded_pix = getbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; shiftbpl2(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -13615,25 +17937,43 @@ static void lts_aga_fm0_dpf0_p2_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } shiftbpl2(); if (bpldat_copy[0] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } loaded_pix = getbpl2(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -13669,7 +18009,7 @@ static void lts_aga_fm0_dpf0_p2_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p2_ishres_dhires(void) +static void lts_aga_fm0_n1_p2_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13681,6 +18021,7 @@ static void lts_aga_fm0_dpf1_p2_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -13688,12 +18029,7 @@ static void lts_aga_fm0_dpf1_p2_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } @@ -13705,9 +18041,37 @@ static void lts_aga_fm0_dpf1_p2_ishres_dhires(void) copybpl2o(); } loaded_pix = getbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 15) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -13715,12 +18079,7 @@ static void lts_aga_fm0_dpf1_p2_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } @@ -13732,11 +18091,54 @@ static void lts_aga_fm0_dpf1_p2_ishres_dhires(void) copybpl2o(); } loaded_pix = getbpl2(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 3) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 3) & 15) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -13772,151 +18174,7 @@ static void lts_aga_fm0_dpf1_p2_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p2_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb1_p2_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham0_p2_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham1_p2_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb0_p2_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb1_p2_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_n0_p4_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_n1_p4_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_dpf0_p4_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_dpf1_p4_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb0_p4_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb1_p4_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham0_p4_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham1_p4_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb0_p4_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb1_p4_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_n0_p6_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_n1_p6_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_dpf0_p6_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_dpf1_p6_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb0_p6_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb1_p6_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham0_p6_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham1_p6_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb0_p6_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb1_p6_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_n0_p8_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_n1_p8_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_dpf0_p8_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_dpf1_p8_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb0_p8_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb1_p8_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham0_p8_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham1_p8_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb0_p8_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_kehb1_p8_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm0_n0_p2_ishres_dhires_spr(void) +static void lts_aga_fm0_dpf0_p2_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13936,7 +18194,12 @@ static void lts_aga_fm0_n0_p2_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } @@ -13964,7 +18227,12 @@ static void lts_aga_fm0_n0_p2_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } @@ -14033,7 +18301,7 @@ static void lts_aga_fm0_n0_p2_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_n1_p2_ishres_dhires_spr(void) +static void lts_aga_fm0_dpf0_p2_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14053,16 +18321,18 @@ static void lts_aga_fm0_n1_p2_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[0]) { - copybpl2e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl2(); } loaded_pix = getbpl2(); uae_u32 sv0 = 0; @@ -14074,7 +18344,28 @@ static void lts_aga_fm0_n1_p2_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -14084,16 +18375,18 @@ static void lts_aga_fm0_n1_p2_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } shiftbpl2(); if (bpldat_copy[0] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[0]) { - copybpl2e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl2(); } loaded_pix = getbpl2(); uae_u32 sv2 = 0; @@ -14105,22 +18398,47 @@ static void lts_aga_fm0_n1_p2_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + } + last_bpl_pix = pix3; + } shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 3) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -14156,7 +18474,7 @@ static void lts_aga_fm0_n1_p2_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p2_ishres_dhires_spr(void) +static void lts_aga_fm0_dpf1_p2_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14187,7 +18505,10 @@ static void lts_aga_fm0_dpf0_p2_ishres_dhires_spr(void) } shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 15) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } loaded_pix = getbpl2(); uae_u32 sv0 = 0; @@ -14220,7 +18541,10 @@ static void lts_aga_fm0_dpf0_p2_ishres_dhires_spr(void) } shiftbpl2(); if (bpldat_copy[0] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 2) & 15) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } loaded_pix = getbpl2(); uae_u32 sv2 = 0; @@ -14283,7 +18607,7 @@ static void lts_aga_fm0_dpf0_p2_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p2_ishres_dhires_spr(void) +static void lts_aga_fm0_dpf1_p2_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14329,7 +18653,31 @@ static void lts_aga_fm0_dpf1_p2_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 15) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -14365,22 +18713,50 @@ static void lts_aga_fm0_dpf1_p2_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + } + last_bpl_pix = pix3; + } shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 3) & 15) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 3) & 15) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -14420,146 +18796,290 @@ static void lts_aga_fm0_ehb0_p2_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p2_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p2_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p2_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p2_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_ham0_p2_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p2_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_ham1_p2_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p2_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p2_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p2_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p2_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_n0_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_n1_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_n0_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_n1_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_ham0_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_ham1_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_n0_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_n1_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_ham0_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_ham1_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p2_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -14723,6 +19243,10 @@ static void lts_aga_fm0_n0_p2_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_n0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p2_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -14930,6 +19454,10 @@ static void lts_aga_fm0_n1_p2_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_n1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p2_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -15113,6 +19641,10 @@ static void lts_aga_fm0_dpf0_p2_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p2_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -15340,30 +19872,58 @@ static void lts_aga_fm0_dpf1_p2_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p2_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p2_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p2_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p2_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p2_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p2_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -15527,6 +20087,10 @@ static void lts_aga_fm0_n0_p4_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_n0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -15734,6 +20298,10 @@ static void lts_aga_fm0_n1_p4_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_n1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -15917,6 +20485,10 @@ static void lts_aga_fm0_dpf0_p4_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -16144,30 +20716,58 @@ static void lts_aga_fm0_dpf1_p4_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -16331,6 +20931,10 @@ static void lts_aga_fm0_n0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_n0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -16538,6 +21142,10 @@ static void lts_aga_fm0_n1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_n1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -16721,6 +21329,10 @@ static void lts_aga_fm0_dpf0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -16948,6 +21560,10 @@ static void lts_aga_fm0_dpf1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -17135,6 +21751,10 @@ static void lts_aga_fm0_ehb0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_ehb0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -17366,6 +21986,10 @@ static void lts_aga_fm0_ehb1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_ehb1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -17529,6 +22153,10 @@ static void lts_aga_fm0_ham0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_ham0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -17736,6 +22364,10 @@ static void lts_aga_fm0_ham1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_ham1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -17903,6 +22535,10 @@ static void lts_aga_fm0_kehb0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_kehb0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -18114,6 +22750,10 @@ static void lts_aga_fm0_kehb1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_kehb1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -18277,6 +22917,10 @@ static void lts_aga_fm0_n0_p8_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_n0_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -18484,6 +23128,10 @@ static void lts_aga_fm0_n1_p8_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_n1_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -18667,6 +23315,10 @@ static void lts_aga_fm0_dpf0_p8_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -18894,14 +23546,26 @@ static void lts_aga_fm0_dpf1_p8_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -19065,6 +23729,10 @@ static void lts_aga_fm0_ham0_p8_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_ham0_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -19272,14 +23940,26 @@ static void lts_aga_fm0_ham1_p8_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm0_ham1_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p2_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -19503,6 +24183,10 @@ static void lts_aga_fm0_n0_p2_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_n0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p2_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -19770,6 +24454,10 @@ static void lts_aga_fm0_n1_p2_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_n1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p2_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -20013,6 +24701,10 @@ static void lts_aga_fm0_dpf0_p2_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p2_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -20300,30 +24992,58 @@ static void lts_aga_fm0_dpf1_p2_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -20547,6 +25267,10 @@ static void lts_aga_fm0_n0_p4_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_n0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -20814,6 +25538,10 @@ static void lts_aga_fm0_n1_p4_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_n1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -21057,6 +25785,10 @@ static void lts_aga_fm0_dpf0_p4_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -21344,30 +26076,58 @@ static void lts_aga_fm0_dpf1_p4_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -21591,6 +26351,10 @@ static void lts_aga_fm0_n0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_n0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -21858,6 +26622,10 @@ static void lts_aga_fm0_n1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_n1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -22101,6 +26869,10 @@ static void lts_aga_fm0_dpf0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -22388,6 +27160,10 @@ static void lts_aga_fm0_dpf1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -22635,6 +27411,10 @@ static void lts_aga_fm0_ehb0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_ehb0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -22926,6 +27706,10 @@ static void lts_aga_fm0_ehb1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_ehb1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -23149,6 +27933,10 @@ static void lts_aga_fm0_ham0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_ham0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -23416,6 +28204,10 @@ static void lts_aga_fm0_ham1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_ham1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -23643,6 +28435,10 @@ static void lts_aga_fm0_kehb0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_kehb0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -23914,6 +28710,10 @@ static void lts_aga_fm0_kehb1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_kehb1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -24137,6 +28937,10 @@ static void lts_aga_fm0_n0_p8_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_n0_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -24404,6 +29208,10 @@ static void lts_aga_fm0_n1_p8_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_n1_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -24647,6 +29455,10 @@ static void lts_aga_fm0_dpf0_p8_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -24934,14 +29746,26 @@ static void lts_aga_fm0_dpf1_p8_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -25165,6 +29989,10 @@ static void lts_aga_fm0_ham0_p8_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_ham0_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -25432,14 +30260,26 @@ static void lts_aga_fm0_ham1_p8_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_ham1_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p2_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -25603,6 +30443,10 @@ static void lts_aga_fm0_n0_p2_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm0_n0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p2_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -25810,6 +30654,10 @@ static void lts_aga_fm0_n1_p2_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm0_n1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p2_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -25993,6 +30841,10 @@ static void lts_aga_fm0_dpf0_p2_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p2_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -26220,30 +31072,58 @@ static void lts_aga_fm0_dpf1_p2_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p2_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p2_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p2_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p2_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p2_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p2_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -26407,6 +31287,10 @@ static void lts_aga_fm0_n0_p4_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm0_n0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -26614,6 +31498,10 @@ static void lts_aga_fm0_n1_p4_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm0_n1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -26797,6 +31685,10 @@ static void lts_aga_fm0_dpf0_p4_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -27024,110 +31916,218 @@ static void lts_aga_fm0_dpf1_p4_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p6_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_n0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p6_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_n1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p6_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p6_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p6_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p6_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p6_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p6_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p6_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p6_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_n0_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_n1_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham0_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham1_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p2_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -27351,6 +32351,10 @@ static void lts_aga_fm0_n0_p2_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_n0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p2_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -27618,6 +32622,10 @@ static void lts_aga_fm0_n1_p2_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_n1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p2_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -27861,6 +32869,10 @@ static void lts_aga_fm0_dpf0_p2_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p2_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -28148,30 +33160,58 @@ static void lts_aga_fm0_dpf1_p2_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -28395,6 +33435,10 @@ static void lts_aga_fm0_n0_p4_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_n0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -28662,6 +33706,10 @@ static void lts_aga_fm0_n1_p4_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_n1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -28905,6 +33953,10 @@ static void lts_aga_fm0_dpf0_p4_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -29192,110 +34244,218 @@ static void lts_aga_fm0_dpf1_p4_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p6_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_n0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p6_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_n1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p6_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p6_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p6_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p6_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p6_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p6_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p6_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p6_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_n0_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_n1_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham0_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham1_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p2_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -29435,6 +34595,10 @@ static void lts_aga_fm0_n0_p2_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm0_n0_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p2_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -29586,6 +34750,10 @@ static void lts_aga_fm0_n1_p2_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm0_n1_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p2_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -29745,6 +34913,10 @@ static void lts_aga_fm0_dpf0_p2_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p2_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -29916,150 +35088,298 @@ static void lts_aga_fm0_dpf1_p2_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p2_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p2_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p2_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham0_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p2_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham1_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p2_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p2_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_n0_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_n1_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_n0_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_n1_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham0_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham1_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_n0_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_n1_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham0_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_ham1_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p2_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -30259,6 +35579,10 @@ static void lts_aga_fm0_n0_p2_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_n0_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p2_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -30470,6 +35794,10 @@ static void lts_aga_fm0_n1_p2_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_n1_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p2_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -30689,6 +36017,10 @@ static void lts_aga_fm0_dpf0_p2_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p2_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -30920,147 +36252,295 @@ static void lts_aga_fm0_dpf1_p2_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p2_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p2_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p2_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham0_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p2_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham1_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p2_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p2_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_n0_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_n1_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_n0_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_n1_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham0_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham1_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_n0_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_n1_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham0_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_ham1_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} diff --git a/linetoscr_aga_fm0_genlock.cpp b/linetoscr_aga_fm0_genlock.cpp index 09aa784b..80117f99 100644 --- a/linetoscr_aga_fm0_genlock.cpp +++ b/linetoscr_aga_fm0_genlock.cpp @@ -67,6 +67,10 @@ static void lts_aga_fm0_n0_p4_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n0_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -133,6 +137,10 @@ static void lts_aga_fm0_n1_p4_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n1_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -201,6 +209,10 @@ static void lts_aga_fm0_dpf0_p4_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -272,30 +284,58 @@ static void lts_aga_fm0_dpf1_p4_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -359,6 +399,10 @@ static void lts_aga_fm0_n0_p8_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n0_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -425,6 +469,10 @@ static void lts_aga_fm0_n1_p8_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n1_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -493,6 +541,10 @@ static void lts_aga_fm0_dpf0_p8_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -564,14 +616,26 @@ static void lts_aga_fm0_dpf1_p8_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -635,6 +699,10 @@ static void lts_aga_fm0_ham0_p8_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm0_ham0_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -701,14 +769,26 @@ static void lts_aga_fm0_ham1_p8_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm0_ham1_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -789,6 +869,10 @@ static void lts_aga_fm0_n0_p4_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n0_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -872,6 +956,10 @@ static void lts_aga_fm0_n1_p4_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n1_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -957,6 +1045,10 @@ static void lts_aga_fm0_dpf0_p4_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1045,30 +1137,58 @@ static void lts_aga_fm0_dpf1_p4_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1149,6 +1269,10 @@ static void lts_aga_fm0_n0_p8_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n0_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1232,6 +1356,10 @@ static void lts_aga_fm0_n1_p8_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n1_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1317,6 +1445,10 @@ static void lts_aga_fm0_dpf0_p8_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1405,14 +1537,26 @@ static void lts_aga_fm0_dpf1_p8_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1493,6 +1637,10 @@ static void lts_aga_fm0_ham0_p8_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_ham0_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1576,14 +1724,26 @@ static void lts_aga_fm0_ham1_p8_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_ham1_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -1648,6 +1808,90 @@ static void lts_aga_fm0_n0_p4_ihires_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n0_p4_ihires_dlores_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} static void lts_aga_fm0_n1_p4_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -1715,7 +1959,7 @@ static void lts_aga_fm0_n1_p4_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p4_ihires_dlores_genlock(void) +static void lts_aga_fm0_n1_p4_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1736,25 +1980,46 @@ static void lts_aga_fm0_dpf0_p4_ihires_dlores_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } loaded_pix = getbpl4(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -1784,7 +2049,7 @@ static void lts_aga_fm0_dpf0_p4_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p4_ihires_dlores_genlock(void) +static void lts_aga_fm0_dpf0_p4_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1817,10 +2082,7 @@ static void lts_aga_fm0_dpf1_p4_ihires_dlores_genlock(void) } shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl4(); } loaded_pix = getbpl4(); loaded_pixs[0] = loaded_pix; @@ -1856,71 +2118,668 @@ static void lts_aga_fm0_dpf1_p4_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p4_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm0_ehb1_p4_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm0_ham0_p4_ihires_dlores_genlock(void) +static void lts_aga_fm0_dpf0_p4_ihires_dlores_filtered_genlock(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_dpf1_p4_ihires_dlores_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4(); + loaded_pixs[0] = loaded_pix; + shiftbpl4(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_dpf1_p4_ihires_dlores_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_ehb0_p4_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p4_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p4_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); } static void lts_aga_fm0_ham1_p4_ihires_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ihires_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ihires_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ihires_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_n0_p8_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ihires_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_n1_p8_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ihires_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p8_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ihires_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p8_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ihires_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ihires_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ihires_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p8_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ihires_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p8_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ihires_dlores_genlock(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p8_ihires_dlores_genlock(void) +static void lts_aga_fm0_kehb0_p8_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p8_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p8_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p4_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_n0_p4_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_n1_p4_ihires_dlores_spr_genlock(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm0_n0_p4_ihires_dlores_spr_genlock(void) +static void lts_aga_fm0_n1_p4_ihires_dlores_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1948,6 +2807,119 @@ static void lts_aga_fm0_n0_p4_ihires_dlores_spr_genlock(void) last_bpl_pix = pix0; } shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm0_dpf0_p4_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { copybpl4(); } @@ -2001,7 +2973,7 @@ static void lts_aga_fm0_n0_p4_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm0_n1_p4_ihires_dlores_spr_genlock(void) +static void lts_aga_fm0_dpf0_p4_ihires_dlores_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2023,17 +2995,19 @@ static void lts_aga_fm0_n1_p4_ihires_dlores_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl4(); } loaded_pix = getbpl4(); uae_u32 sv0 = 0; @@ -2045,7 +3019,31 @@ static void lts_aga_fm0_n1_p4_ihires_dlores_spr_genlock(void) } } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -2054,8 +3052,10 @@ static void lts_aga_fm0_n1_p4_ihires_dlores_spr_genlock(void) dpix_val0 = denise_colors.acolors[spix0]; gpix0 = get_genlock_transparency(spix0); + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2085,7 +3085,7 @@ static void lts_aga_fm0_n1_p4_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm0_dpf0_p4_ihires_dlores_spr_genlock(void) +static void lts_aga_fm0_dpf1_p4_ihires_dlores_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2119,7 +3119,10 @@ static void lts_aga_fm0_dpf0_p4_ihires_dlores_spr_genlock(void) } shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } loaded_pix = getbpl4(); uae_u32 sv0 = 0; @@ -2171,7 +3174,7 @@ static void lts_aga_fm0_dpf0_p4_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm0_dpf1_p4_ihires_dlores_spr_genlock(void) +static void lts_aga_fm0_dpf1_p4_ihires_dlores_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2220,7 +3223,34 @@ static void lts_aga_fm0_dpf1_p4_ihires_dlores_spr_genlock(void) } } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -2229,8 +3259,10 @@ static void lts_aga_fm0_dpf1_p4_ihires_dlores_spr_genlock(void) dpix_val0 = denise_colors.acolors[spix0]; gpix0 = get_genlock_transparency(spix0); + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2264,223 +3296,447 @@ static void lts_aga_fm0_ehb0_p4_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_n0_p8_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_n1_p8_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p8_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p8_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p8_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p8_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_n0_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_n1_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_n0_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_n1_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ishres_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ishres_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_n0_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ishres_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_n1_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ishres_dlores_spr_genlock(void) { lts_null(); } -static void lts_aga_fm0_dpf1_p4_ishres_dlores_spr_genlock(void) +static void lts_aga_fm0_dpf0_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_dpf1_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_n1_p8_ishres_dlores_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm0_ehb0_p4_ishres_dlores_spr_genlock(void) +static void lts_aga_fm0_dpf0_p8_ishres_dlores_spr_genlock(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p4_ishres_dlores_spr_genlock(void) +static void lts_aga_fm0_dpf0_p8_ishres_dlores_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm0_ham0_p4_ishres_dlores_spr_genlock(void) +static void lts_aga_fm0_dpf1_p8_ishres_dlores_spr_genlock(void) { lts_null(); } -static void lts_aga_fm0_ham1_p4_ishres_dlores_spr_genlock(void) +static void lts_aga_fm0_dpf1_p8_ishres_dlores_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p4_ishres_dlores_spr_genlock(void) +static void lts_aga_fm0_ehb0_p8_ishres_dlores_spr_genlock(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p4_ishres_dlores_spr_genlock(void) +static void lts_aga_fm0_ehb0_p8_ishres_dlores_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm0_n0_p8_ishres_dlores_spr_genlock(void) +static void lts_aga_fm0_ehb1_p8_ishres_dlores_spr_genlock(void) { lts_null(); } -static void lts_aga_fm0_n1_p8_ishres_dlores_spr_genlock(void) +static void lts_aga_fm0_ehb1_p8_ishres_dlores_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm0_dpf0_p8_ishres_dlores_spr_genlock(void) +static void lts_aga_fm0_ham0_p8_ishres_dlores_spr_genlock(void) { lts_null(); } -static void lts_aga_fm0_dpf1_p8_ishres_dlores_spr_genlock(void) +static void lts_aga_fm0_ham0_p8_ishres_dlores_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm0_ehb0_p8_ishres_dlores_spr_genlock(void) +static void lts_aga_fm0_ham1_p8_ishres_dlores_spr_genlock(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p8_ishres_dlores_spr_genlock(void) +static void lts_aga_fm0_ham1_p8_ishres_dlores_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm0_ham0_p8_ishres_dlores_spr_genlock(void) +static void lts_aga_fm0_kehb0_p8_ishres_dlores_spr_genlock(void) { lts_null(); } -static void lts_aga_fm0_ham1_p8_ishres_dlores_spr_genlock(void) +static void lts_aga_fm0_kehb0_p8_ishres_dlores_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p8_ishres_dlores_spr_genlock(void) +static void lts_aga_fm0_kehb1_p8_ishres_dlores_spr_genlock(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p8_ishres_dlores_spr_genlock(void) +static void lts_aga_fm0_kehb1_p8_ishres_dlores_spr_filtered_genlock(void) { lts_null(); } @@ -2591,6 +3847,10 @@ static void lts_aga_fm0_n0_p4_ilores_dhires_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n0_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ilores_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -2720,6 +3980,10 @@ static void lts_aga_fm0_n1_p4_ilores_dhires_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n1_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ilores_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -2837,6 +4101,10 @@ static void lts_aga_fm0_dpf0_p4_ilores_dhires_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ilores_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -2976,30 +4244,58 @@ static void lts_aga_fm0_dpf1_p4_ilores_dhires_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ilores_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ilores_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ilores_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ilores_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ilores_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ilores_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ilores_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -3107,6 +4403,10 @@ static void lts_aga_fm0_n0_p8_ilores_dhires_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n0_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ilores_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -3236,6 +4536,10 @@ static void lts_aga_fm0_n1_p8_ilores_dhires_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n1_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ilores_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -3353,6 +4657,10 @@ static void lts_aga_fm0_dpf0_p8_ilores_dhires_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ilores_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -3492,14 +4800,26 @@ static void lts_aga_fm0_dpf1_p8_ilores_dhires_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ilores_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ilores_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ilores_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -3607,6 +4927,10 @@ static void lts_aga_fm0_ham0_p8_ilores_dhires_genlock(void) denise_cck++; } } +static void lts_aga_fm0_ham0_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ilores_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -3736,14 +5060,26 @@ static void lts_aga_fm0_ham1_p8_ilores_dhires_genlock(void) denise_cck++; } } +static void lts_aga_fm0_ham1_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ilores_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ilores_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -3885,6 +5221,10 @@ static void lts_aga_fm0_n0_p4_ilores_dhires_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n0_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -4048,6 +5388,10 @@ static void lts_aga_fm0_n1_p4_ilores_dhires_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n1_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -4199,6 +5543,10 @@ static void lts_aga_fm0_dpf0_p4_ilores_dhires_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -4372,30 +5720,58 @@ static void lts_aga_fm0_dpf1_p4_ilores_dhires_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ilores_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ilores_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ilores_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ilores_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ilores_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ilores_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -4537,6 +5913,10 @@ static void lts_aga_fm0_n0_p8_ilores_dhires_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n0_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -4700,6 +6080,10 @@ static void lts_aga_fm0_n1_p8_ilores_dhires_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n1_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -4851,6 +6235,10 @@ static void lts_aga_fm0_dpf0_p8_ilores_dhires_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -5024,14 +6412,26 @@ static void lts_aga_fm0_dpf1_p8_ilores_dhires_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ilores_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ilores_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -5173,6 +6573,10 @@ static void lts_aga_fm0_ham0_p8_ilores_dhires_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_ham0_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -5336,14 +6740,26 @@ static void lts_aga_fm0_ham1_p8_ilores_dhires_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_ham1_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ilores_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ilores_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -5439,6 +6855,10 @@ static void lts_aga_fm0_n0_p4_ihires_dhires_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n0_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -5540,6 +6960,10 @@ static void lts_aga_fm0_n1_p4_ihires_dhires_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n1_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -5645,6 +7069,10 @@ static void lts_aga_fm0_dpf0_p4_ihires_dhires_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -5756,70 +7184,138 @@ static void lts_aga_fm0_dpf1_p4_ihires_dhires_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ihires_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ihires_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ihires_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ihires_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ihires_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ihires_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ihires_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_n0_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ihires_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_n1_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ihires_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ihires_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ihires_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ihires_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ihires_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ihires_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ihires_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ihires_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -5949,6 +7445,10 @@ static void lts_aga_fm0_n0_p4_ihires_dhires_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n0_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -6084,6 +7584,10 @@ static void lts_aga_fm0_n1_p4_ihires_dhires_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n1_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -6223,6 +7727,10 @@ static void lts_aga_fm0_dpf0_p4_ihires_dhires_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -6368,47 +7876,95 @@ static void lts_aga_fm0_dpf1_p4_ihires_dhires_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ihires_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm0_ehb1_p4_ihires_dhires_spr_genlock(void) +static void lts_aga_fm0_ehb0_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p4_ihires_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb1_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p4_ihires_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham0_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p4_ihires_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ham1_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p4_ihires_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb0_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p4_ihires_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_kehb1_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_n0_p8_ihires_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm0_ham0_p4_ihires_dhires_spr_genlock(void) +static void lts_aga_fm0_n0_p8_ihires_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm0_ham1_p4_ihires_dhires_spr_genlock(void) +static void lts_aga_fm0_n1_p8_ihires_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm0_kehb0_p4_ihires_dhires_spr_genlock(void) +static void lts_aga_fm0_n1_p8_ihires_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm0_kehb1_p4_ihires_dhires_spr_genlock(void) +static void lts_aga_fm0_dpf0_p8_ihires_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm0_n0_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm0_dpf0_p8_ihires_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm0_n1_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm0_dpf1_p8_ihires_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm0_dpf0_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm0_dpf1_p8_ihires_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm0_dpf1_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm0_ehb0_p8_ihires_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm0_ehb0_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm0_ehb0_p8_ihires_dhires_spr_filtered_genlock(void) { lts_null(); } @@ -6416,182 +7972,362 @@ static void lts_aga_fm0_ehb1_p8_ihires_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ihires_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ihires_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ihires_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ihires_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_n0_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_n1_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_n0_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_n1_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ishres_dhires_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_n0_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_n1_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_n0_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_n1_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -6775,6 +8511,10 @@ static void lts_aga_fm0_n0_p4_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n0_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -7002,6 +8742,10 @@ static void lts_aga_fm0_n1_p4_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n1_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -7205,6 +8949,10 @@ static void lts_aga_fm0_dpf0_p4_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -7452,30 +9200,58 @@ static void lts_aga_fm0_dpf1_p4_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -7659,6 +9435,10 @@ static void lts_aga_fm0_n0_p8_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n0_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -7886,6 +9666,10 @@ static void lts_aga_fm0_n1_p8_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n1_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -8089,6 +9873,10 @@ static void lts_aga_fm0_dpf0_p8_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -8336,14 +10124,26 @@ static void lts_aga_fm0_dpf1_p8_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -8527,6 +10327,10 @@ static void lts_aga_fm0_ham0_p8_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm0_ham0_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -8754,14 +10558,26 @@ static void lts_aga_fm0_ham1_p8_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm0_ham1_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -9013,6 +10829,10 @@ static void lts_aga_fm0_n0_p4_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n0_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -9308,6 +11128,10 @@ static void lts_aga_fm0_n1_p4_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n1_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -9579,6 +11403,10 @@ static void lts_aga_fm0_dpf0_p4_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -9894,30 +11722,58 @@ static void lts_aga_fm0_dpf1_p4_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -10169,6 +12025,10 @@ static void lts_aga_fm0_n0_p8_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n0_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -10464,6 +12324,10 @@ static void lts_aga_fm0_n1_p8_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n1_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -10735,6 +12599,10 @@ static void lts_aga_fm0_dpf0_p8_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -11050,7 +12918,15 @@ static void lts_aga_fm0_dpf1_p8_ilores_dshres_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm0_ehb0_p8_ilores_dshres_spr_genlock(void) +static void lts_aga_fm0_dpf1_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p8_ilores_dshres_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm0_ehb0_p8_ilores_dshres_spr_filtered_genlock(void) { lts_null(); } @@ -11058,6 +12934,10 @@ static void lts_aga_fm0_ehb1_p8_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -11309,6 +13189,10 @@ static void lts_aga_fm0_ham0_p8_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_ham0_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -11604,14 +13488,26 @@ static void lts_aga_fm0_ham1_p8_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_ham1_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -11795,6 +13691,10 @@ static void lts_aga_fm0_n0_p4_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -12022,6 +13922,10 @@ static void lts_aga_fm0_n1_p4_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -12225,6 +14129,10 @@ static void lts_aga_fm0_dpf0_p4_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -12472,70 +14380,138 @@ static void lts_aga_fm0_dpf1_p4_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_n0_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_n1_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -12787,6 +14763,10 @@ static void lts_aga_fm0_n0_p4_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -13082,6 +15062,10 @@ static void lts_aga_fm0_n1_p4_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_n1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -13353,6 +15337,10 @@ static void lts_aga_fm0_dpf0_p4_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -13668,227 +15656,455 @@ static void lts_aga_fm0_dpf1_p4_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm0_dpf1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_n0_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_n1_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_n0_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_n1_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_n0_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_n1_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_n0_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_n1_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n0_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_n0_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_n1_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_n1_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf0_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf0_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_dpf1_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_dpf1_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb0_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb0_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ehb1_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ehb1_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham0_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham0_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_ham1_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_ham1_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb0_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb0_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm0_kehb1_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm0_kehb1_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} diff --git a/linetoscr_aga_fm1.cpp b/linetoscr_aga_fm1.cpp index a6178775..f8e0b3d2 100644 --- a/linetoscr_aga_fm1.cpp +++ b/linetoscr_aga_fm1.cpp @@ -62,6 +62,10 @@ static void lts_aga_fm1_n0_p2_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_n0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p2_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -123,6 +127,10 @@ static void lts_aga_fm1_n1_p2_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_n1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p2_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -186,6 +194,10 @@ static void lts_aga_fm1_dpf0_p2_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p2_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -252,30 +264,58 @@ static void lts_aga_fm1_dpf1_p2_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p2_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p2_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p2_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm1_ham0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p2_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm1_ham1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p2_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p2_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p4_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -334,6 +374,10 @@ static void lts_aga_fm1_n0_p4_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_n0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p4_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -395,6 +439,10 @@ static void lts_aga_fm1_n1_p4_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_n1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p4_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -458,6 +506,10 @@ static void lts_aga_fm1_dpf0_p4_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p4_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -524,30 +576,58 @@ static void lts_aga_fm1_dpf1_p4_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p4_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p4_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p4_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm1_ham0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p4_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm1_ham1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p4_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p4_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -606,6 +686,10 @@ static void lts_aga_fm1_n0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_n0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -667,6 +751,10 @@ static void lts_aga_fm1_n1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_n1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -730,6 +818,10 @@ static void lts_aga_fm1_dpf0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -796,6 +888,10 @@ static void lts_aga_fm1_dpf1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -860,6 +956,10 @@ static void lts_aga_fm1_ehb0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_ehb0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -927,6 +1027,10 @@ static void lts_aga_fm1_ehb1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_ehb1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -985,6 +1089,10 @@ static void lts_aga_fm1_ham0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_ham0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1046,6 +1154,10 @@ static void lts_aga_fm1_ham1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_ham1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1105,6 +1217,10 @@ static void lts_aga_fm1_kehb0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_kehb0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1167,6 +1283,10 @@ static void lts_aga_fm1_kehb1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_kehb1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p8_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1225,6 +1345,10 @@ static void lts_aga_fm1_n0_p8_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_n0_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p8_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1286,6 +1410,10 @@ static void lts_aga_fm1_n1_p8_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_n1_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p8_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1349,6 +1477,10 @@ static void lts_aga_fm1_dpf0_p8_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p8_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1415,14 +1547,26 @@ static void lts_aga_fm1_dpf1_p8_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p8_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p8_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p8_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1481,6 +1625,10 @@ static void lts_aga_fm1_ham0_p8_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_ham0_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p8_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1542,14 +1690,26 @@ static void lts_aga_fm1_ham1_p8_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm1_ham1_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p8_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p8_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p2_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1623,6 +1783,10 @@ static void lts_aga_fm1_n0_p2_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_n0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p2_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1699,6 +1863,10 @@ static void lts_aga_fm1_n1_p2_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_n1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p2_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1777,6 +1945,10 @@ static void lts_aga_fm1_dpf0_p2_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p2_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1858,30 +2030,58 @@ static void lts_aga_fm1_dpf1_p2_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm1_ham0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm1_ham1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p4_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1955,6 +2155,10 @@ static void lts_aga_fm1_n0_p4_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_n0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p4_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2031,6 +2235,10 @@ static void lts_aga_fm1_n1_p4_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_n1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p4_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2109,6 +2317,10 @@ static void lts_aga_fm1_dpf0_p4_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p4_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2190,30 +2402,58 @@ static void lts_aga_fm1_dpf1_p4_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm1_ham0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm1_ham1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2287,6 +2527,10 @@ static void lts_aga_fm1_n0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_n0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2363,6 +2607,10 @@ static void lts_aga_fm1_n1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_n1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2441,6 +2689,10 @@ static void lts_aga_fm1_dpf0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2522,6 +2774,10 @@ static void lts_aga_fm1_dpf1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2601,6 +2857,10 @@ static void lts_aga_fm1_ehb0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_ehb0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2683,6 +2943,10 @@ static void lts_aga_fm1_ehb1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_ehb1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2756,6 +3020,10 @@ static void lts_aga_fm1_ham0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_ham0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2832,6 +3100,10 @@ static void lts_aga_fm1_ham1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_ham1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2906,6 +3178,10 @@ static void lts_aga_fm1_kehb0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_kehb0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2983,6 +3259,10 @@ static void lts_aga_fm1_kehb1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_kehb1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p8_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3056,6 +3336,10 @@ static void lts_aga_fm1_n0_p8_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_n0_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p8_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3132,6 +3416,10 @@ static void lts_aga_fm1_n1_p8_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_n1_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p8_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3210,6 +3498,10 @@ static void lts_aga_fm1_dpf0_p8_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p8_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3291,14 +3583,26 @@ static void lts_aga_fm1_dpf1_p8_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p8_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p8_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p8_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3372,6 +3676,10 @@ static void lts_aga_fm1_ham0_p8_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_ham0_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p8_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3448,14 +3756,26 @@ static void lts_aga_fm1_ham1_p8_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm1_ham1_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p8_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p8_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p2_ihires_dlores(void) { while (denise_cck < denise_total) { @@ -3515,7 +3835,7 @@ static void lts_aga_fm1_n0_p2_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_n1_p2_ihires_dlores(void) +static void lts_aga_fm1_n0_p2_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3540,16 +3860,30 @@ static void lts_aga_fm1_n1_p2_ihires_dlores(void) } shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl2(); } loaded_pix = getbpl2_32(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -3577,7 +3911,7 @@ static void lts_aga_fm1_n1_p2_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p2_ihires_dlores(void) +static void lts_aga_fm1_n1_p2_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3596,18 +3930,16 @@ static void lts_aga_fm1_dpf0_p2_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } loaded_pix = getbpl2_32(); loaded_pixs[0] = loaded_pix; @@ -3641,7 +3973,7 @@ static void lts_aga_fm1_dpf0_p2_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p2_ihires_dlores(void) +static void lts_aga_fm1_n1_p2_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3660,12 +3992,7 @@ static void lts_aga_fm1_dpf1_p2_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } @@ -3678,9 +4005,29 @@ static void lts_aga_fm1_dpf1_p2_ihires_dlores(void) } loaded_pix = getbpl2_32(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -3708,31 +4055,7 @@ static void lts_aga_fm1_dpf1_p2_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p4_ihires_dlores(void) +static void lts_aga_fm1_dpf0_p2_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3751,17 +4074,22 @@ static void lts_aga_fm1_n0_p4_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl2(); } - loaded_pix = getbpl4_32(); + loaded_pix = getbpl2_32(); loaded_pixs[0] = loaded_pix; - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -3791,7 +4119,7 @@ static void lts_aga_fm1_n0_p4_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_n1_p4_ihires_dlores(void) +static void lts_aga_fm1_dpf0_p2_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3810,22 +4138,46 @@ static void lts_aga_fm1_n1_p4_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl2(); } - loaded_pix = getbpl4_32(); + loaded_pix = getbpl2_32(); loaded_pixs[0] = loaded_pix; - shiftbpl4(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -3853,7 +4205,7 @@ static void lts_aga_fm1_n1_p4_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p4_ihires_dlores(void) +static void lts_aga_fm1_dpf1_p2_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3881,13 +4233,16 @@ static void lts_aga_fm1_dpf0_p4_ihires_dlores(void) } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl2e(); } - loaded_pix = getbpl4_32(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2_32(); loaded_pixs[0] = loaded_pix; - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -3917,7 +4272,7 @@ static void lts_aga_fm1_dpf0_p4_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p4_ihires_dlores(void) +static void lts_aga_fm1_dpf1_p2_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3945,18 +4300,43 @@ static void lts_aga_fm1_dpf1_p4_ihires_dlores(void) } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl2e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl2o(); } - loaded_pix = getbpl4_32(); + loaded_pix = getbpl2_32(); loaded_pixs[0] = loaded_pix; - shiftbpl4(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -3984,31 +4364,55 @@ static void lts_aga_fm1_dpf1_p4_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p4_ihires_dlores(void) +static void lts_aga_fm1_ehb0_p2_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm1_ehb1_p4_ihires_dlores(void) +static void lts_aga_fm1_ehb0_p2_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm1_ham0_p4_ihires_dlores(void) +static void lts_aga_fm1_ehb1_p2_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm1_ham1_p4_ihires_dlores(void) +static void lts_aga_fm1_ehb1_p2_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm1_kehb0_p4_ihires_dlores(void) +static void lts_aga_fm1_ham0_p2_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm1_kehb1_p4_ihires_dlores(void) +static void lts_aga_fm1_ham0_p2_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm1_n0_p6_ihires_dlores(void) +static void lts_aga_fm1_ham1_p2_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p2_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p2_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p2_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p2_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p2_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4031,13 +4435,13 @@ static void lts_aga_fm1_n0_p6_ihires_dlores(void) } last_bpl_pix = pix0; } - shiftbpl6(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl4(); } - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; - shiftbpl6(); + shiftbpl4(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -4067,7 +4471,7 @@ static void lts_aga_fm1_n0_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_n1_p6_ihires_dlores(void) +static void lts_aga_fm1_n0_p4_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4090,18 +4494,32 @@ static void lts_aga_fm1_n1_p6_ihires_dlores(void) } last_bpl_pix = pix0; } - shiftbpl6(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl4(); } - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; - shiftbpl6(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4129,7 +4547,7 @@ static void lts_aga_fm1_n1_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p6_ihires_dlores(void) +static void lts_aga_fm1_n1_p4_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4148,22 +4566,20 @@ static void lts_aga_fm1_dpf0_p6_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl4e(); } - loaded_pix = getbpl6_32(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; - shiftbpl6(); + shiftbpl4(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -4193,7 +4609,7 @@ static void lts_aga_fm1_dpf0_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p6_ihires_dlores(void) +static void lts_aga_fm1_n1_p4_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4212,27 +4628,42 @@ static void lts_aga_fm1_dpf1_p6_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl4e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl4o(); } - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; - shiftbpl6(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4260,7 +4691,7 @@ static void lts_aga_fm1_dpf1_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p6_ihires_dlores(void) +static void lts_aga_fm1_dpf0_p4_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4279,23 +4710,22 @@ static void lts_aga_fm1_ehb0_p6_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl4(); } - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; - shiftbpl6(); + shiftbpl4(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -4325,7 +4755,7 @@ static void lts_aga_fm1_ehb0_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_ehb1_p6_ihires_dlores(void) +static void lts_aga_fm1_dpf0_p4_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4344,28 +4774,46 @@ static void lts_aga_fm1_ehb1_p6_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl4(); } - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; - shiftbpl6(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4393,7 +4841,7 @@ static void lts_aga_fm1_ehb1_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_ham0_p6_ihires_dlores(void) +static void lts_aga_fm1_dpf1_p4_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4412,32 +4860,25 @@ static void lts_aga_fm1_ham0_p6_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); - } - loaded_pix = getbpl6_32(); - loaded_pixs[0] = loaded_pix; - uae_u8 pix1 = 0; - uae_u32 dpix_val1 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val1 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); - } - last_bpl_pix = pix1; + copybpl4e(); } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } - loaded_pix = getbpl6_32(); - loaded_pixs[1] = loaded_pix; + loaded_pix = getbpl4_32(); + loaded_pixs[0] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -4467,7 +4908,7 @@ static void lts_aga_fm1_ham0_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_ham1_p6_ihires_dlores(void) +static void lts_aga_fm1_dpf1_p4_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4486,18 +4927,23 @@ static void lts_aga_fm1_ham1_p6_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl4e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl4o(); } - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; uae_u8 pix1 = 0; uae_u32 dpix_val1 = BLANK_COLOR; @@ -4505,21 +4951,28 @@ static void lts_aga_fm1_ham1_p6_ihires_dlores(void) dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } - shiftbpl6(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl4e(); } if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl4o(); } - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4547,7 +5000,55 @@ static void lts_aga_fm1_ham1_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_kehb0_p6_ihires_dlores(void) +static void lts_aga_fm1_ehb0_p4_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4566,8 +5067,7 @@ static void lts_aga_fm1_kehb0_p6_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } @@ -4607,7 +5107,7 @@ static void lts_aga_fm1_kehb0_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_kehb1_p6_ihires_dlores(void) +static void lts_aga_fm1_n0_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4626,23 +5126,36 @@ static void lts_aga_fm1_kehb1_p6_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl6(); } loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4670,7 +5183,7 @@ static void lts_aga_fm1_kehb1_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_n0_p8_ihires_dlores(void) +static void lts_aga_fm1_n1_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4693,13 +5206,16 @@ static void lts_aga_fm1_n0_p8_ihires_dlores(void) } last_bpl_pix = pix0; } - shiftbpl8(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl6e(); } - loaded_pix = getbpl8_32(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; - shiftbpl8(); + shiftbpl6(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -4729,7 +5245,7 @@ static void lts_aga_fm1_n0_p8_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_n1_p8_ihires_dlores(void) +static void lts_aga_fm1_n1_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4752,18 +5268,38 @@ static void lts_aga_fm1_n1_p8_ihires_dlores(void) } last_bpl_pix = pix0; } - shiftbpl8(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl6e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl6o(); } - loaded_pix = getbpl8_32(); + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; - shiftbpl8(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4791,7 +5327,7 @@ static void lts_aga_fm1_n1_p8_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p8_ihires_dlores(void) +static void lts_aga_fm1_dpf0_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4819,13 +5355,13 @@ static void lts_aga_fm1_dpf0_p8_ihires_dlores(void) } last_bpl_pix = pix0; } - shiftbpl8(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl6(); } - loaded_pix = getbpl8_32(); + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; - shiftbpl8(); + shiftbpl6(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -4855,7 +5391,7 @@ static void lts_aga_fm1_dpf0_p8_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p8_ihires_dlores(void) +static void lts_aga_fm1_dpf0_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4883,18 +5419,37 @@ static void lts_aga_fm1_dpf1_p8_ihires_dlores(void) } last_bpl_pix = pix0; } - shiftbpl8(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl6(); } - loaded_pix = getbpl8_32(); + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; - shiftbpl8(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4922,15 +5477,7 @@ static void lts_aga_fm1_dpf1_p8_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p8_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p8_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p8_ihires_dlores(void) +static void lts_aga_fm1_dpf1_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4949,32 +5496,25 @@ static void lts_aga_fm1_ham0_p8_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl8(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); - } - loaded_pix = getbpl8_32(); - loaded_pixs[0] = loaded_pix; - uae_u8 pix1 = 0; - uae_u32 dpix_val1 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val1 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); - } - last_bpl_pix = pix1; + copybpl6e(); } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); } - loaded_pix = getbpl8_32(); - loaded_pixs[1] = loaded_pix; + loaded_pix = getbpl6_32(); + loaded_pixs[0] = loaded_pix; + shiftbpl6(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -5004,7 +5544,7 @@ static void lts_aga_fm1_ham0_p8_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_ham1_p8_ihires_dlores(void) +static void lts_aga_fm1_dpf1_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5023,18 +5563,23 @@ static void lts_aga_fm1_ham1_p8_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl8(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl6e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl6o(); } - loaded_pix = getbpl8_32(); + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; uae_u8 pix1 = 0; uae_u32 dpix_val1 = BLANK_COLOR; @@ -5042,21 +5587,28 @@ static void lts_aga_fm1_ham1_p8_ihires_dlores(void) dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } - shiftbpl8(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl6e(); } if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl6o(); } - loaded_pix = getbpl8_32(); + loaded_pix = getbpl6_32(); loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5084,15 +5636,7 @@ static void lts_aga_fm1_ham1_p8_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm1_kehb0_p8_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p8_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p2_ihires_dlores_spr(void) +static void lts_aga_fm1_ehb0_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5104,7 +5648,6 @@ static void lts_aga_fm1_n0_p2_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5112,33 +5655,25 @@ static void lts_aga_fm1_n0_p2_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); - } - loaded_pix = getbpl2_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + copybpl6(); } + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; - shiftbpl2(); + shiftbpl6(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5166,7 +5701,7 @@ static void lts_aga_fm1_n0_p2_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_n1_p2_ihires_dlores_spr(void) +static void lts_aga_fm1_ehb0_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5178,7 +5713,6 @@ static void lts_aga_fm1_n1_p2_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5186,36 +5720,48 @@ static void lts_aga_fm1_n1_p2_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl6(); } - loaded_pix = getbpl2_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl6_32(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + if (!(pix1 & 0x20)) { + dpix_val1 = denise_colors.acolors[pix1]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix1 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val1 = CONVERT_RGB(v); + } } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; - shiftbpl2(); + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5243,7 +5789,7 @@ static void lts_aga_fm1_n1_p2_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p2_ihires_dlores_spr(void) +static void lts_aga_fm1_ehb1_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5255,7 +5801,6 @@ static void lts_aga_fm1_dpf0_p2_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5263,38 +5808,28 @@ static void lts_aga_fm1_dpf0_p2_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl6e(); } - loaded_pix = getbpl2_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); } + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; - shiftbpl2(); + shiftbpl6(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5322,7 +5857,7 @@ static void lts_aga_fm1_dpf0_p2_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p2_ihires_dlores_spr(void) +static void lts_aga_fm1_ehb1_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5334,7 +5869,6 @@ static void lts_aga_fm1_dpf1_p2_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5342,41 +5876,54 @@ static void lts_aga_fm1_dpf1_p2_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl6e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl6o(); } - loaded_pix = getbpl2_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl6_32(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + if (!(pix1 & 0x20)) { + dpix_val1 = denise_colors.acolors[pix1]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix1 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val1 = CONVERT_RGB(v); + } } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; - shiftbpl2(); + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5404,31 +5951,7 @@ static void lts_aga_fm1_dpf1_p2_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p4_ihires_dlores_spr(void) +static void lts_aga_fm1_ham0_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5440,7 +5963,6 @@ static void lts_aga_fm1_n0_p4_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5448,33 +5970,34 @@ static void lts_aga_fm1_n0_p4_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl6(); } - loaded_pix = getbpl4_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl6_32(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; - shiftbpl4(); + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5502,7 +6025,7 @@ static void lts_aga_fm1_n0_p4_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_n1_p4_ihires_dlores_spr(void) +static void lts_aga_fm1_ham0_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5514,7 +6037,6 @@ static void lts_aga_fm1_n1_p4_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5522,36 +6044,36 @@ static void lts_aga_fm1_n1_p4_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl6(); } - loaded_pix = getbpl4_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl6_32(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; - shiftbpl4(); + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5579,7 +6101,7 @@ static void lts_aga_fm1_n1_p4_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p4_ihires_dlores_spr(void) +static void lts_aga_fm1_ham1_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5591,7 +6113,6 @@ static void lts_aga_fm1_dpf0_p4_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5599,38 +6120,40 @@ static void lts_aga_fm1_dpf0_p4_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl6e(); } - loaded_pix = getbpl4_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); } + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; - shiftbpl4(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5658,7 +6181,7 @@ static void lts_aga_fm1_dpf0_p4_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p4_ihires_dlores_spr(void) +static void lts_aga_fm1_ham1_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5670,7 +6193,6 @@ static void lts_aga_fm1_dpf1_p4_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5678,43 +6200,44 @@ static void lts_aga_fm1_dpf1_p4_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl6e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); - } - loaded_pix = getbpl4_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + copybpl6o(); } + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; - shiftbpl4(); - internal_pixel_cnt += 4; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); } - dtbuf[h][0] = dpix_val0; - uae_u32 t0 = dtbuf[h ^ lol][0]; + last_bpl_pix = pix1; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER if (decode_specials_debug) { t0 = decode_denise_specials_debug(t0, cnt + 0); @@ -5740,31 +6263,7 @@ static void lts_aga_fm1_dpf1_p4_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p4_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p4_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p4_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p4_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p4_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p4_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p6_ihires_dlores_spr(void) +static void lts_aga_fm1_kehb0_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5776,7 +6275,6 @@ static void lts_aga_fm1_n0_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5784,7 +6282,8 @@ static void lts_aga_fm1_n0_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } @@ -5793,24 +6292,10 @@ static void lts_aga_fm1_n0_p6_ihires_dlores_spr(void) copybpl6(); } loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } - } loaded_pixs[0] = loaded_pix; shiftbpl6(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5838,7 +6323,7 @@ static void lts_aga_fm1_n0_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_n1_p6_ihires_dlores_spr(void) +static void lts_aga_fm1_kehb0_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5850,7 +6335,6 @@ static void lts_aga_fm1_n1_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5858,36 +6342,38 @@ static void lts_aga_fm1_n1_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl6(); } loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[pix1 & 31]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5915,7 +6401,7 @@ static void lts_aga_fm1_n1_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p6_ihires_dlores_spr(void) +static void lts_aga_fm1_kehb1_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5927,7 +6413,6 @@ static void lts_aga_fm1_dpf0_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5935,38 +6420,23 @@ static void lts_aga_fm1_dpf0_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl6e(); } - loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); } + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; shiftbpl6(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5994,7 +6464,7 @@ static void lts_aga_fm1_dpf0_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p6_ihires_dlores_spr(void) +static void lts_aga_fm1_kehb1_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6006,7 +6476,6 @@ static void lts_aga_fm1_dpf1_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6014,12 +6483,8 @@ static void lts_aga_fm1_dpf1_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } @@ -6031,24 +6496,31 @@ static void lts_aga_fm1_dpf1_p6_ihires_dlores_spr(void) copybpl6o(); } loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[pix1 & 31]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6076,7 +6548,7 @@ static void lts_aga_fm1_dpf1_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p6_ihires_dlores_spr(void) +static void lts_aga_fm1_n0_p8_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6088,7 +6560,6 @@ static void lts_aga_fm1_ehb0_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6096,39 +6567,19 @@ static void lts_aga_fm1_ehb0_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); - } + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); - } - loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + copybpl8(); } + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; - shiftbpl6(); + shiftbpl8(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6156,7 +6607,7 @@ static void lts_aga_fm1_ehb0_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_ehb1_p6_ihires_dlores_spr(void) +static void lts_aga_fm1_n0_p8_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6168,7 +6619,6 @@ static void lts_aga_fm1_ehb1_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6176,42 +6626,36 @@ static void lts_aga_fm1_ehb1_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); - } + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl8(); } - loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl8_32(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; - shiftbpl6(); + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6239,7 +6683,7 @@ static void lts_aga_fm1_ehb1_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_ham0_p6_ihires_dlores_spr(void) +static void lts_aga_fm1_n1_p8_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6251,7 +6695,6 @@ static void lts_aga_fm1_ham0_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6259,48 +6702,22 @@ static void lts_aga_fm1_ham0_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl8e(); } - loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); } + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; - uae_u8 pix1 = 0; - uae_u32 dpix_val1 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val1 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); - } - last_bpl_pix = pix1; - } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); - } - loaded_pix = getbpl6_32(); - loaded_pixs[1] = loaded_pix; + shiftbpl8(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6328,7 +6745,7 @@ static void lts_aga_fm1_ham0_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_ham1_p6_ihires_dlores_spr(void) +static void lts_aga_fm1_n1_p8_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6340,7 +6757,6 @@ static void lts_aga_fm1_ham1_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6348,26 +6764,18 @@ static void lts_aga_fm1_ham1_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl8e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); - } - loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + copybpl8o(); } + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; uae_u8 pix1 = 0; uae_u32 dpix_val1 = BLANK_COLOR; @@ -6375,27 +6783,23 @@ static void lts_aga_fm1_ham1_p6_ihires_dlores_spr(void) dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix1; } - shiftbpl6(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl8e(); } if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl8o(); } - loaded_pix = getbpl6_32(); + loaded_pix = getbpl8_32(); loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6423,7 +6827,7 @@ static void lts_aga_fm1_ham1_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_kehb0_p6_ihires_dlores_spr(void) +static void lts_aga_fm1_dpf0_p8_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6435,7 +6839,6 @@ static void lts_aga_fm1_kehb0_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6443,34 +6846,24 @@ static void lts_aga_fm1_kehb0_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); - } - loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + copybpl8(); } + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; - shiftbpl6(); + shiftbpl8(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6498,7 +6891,7 @@ static void lts_aga_fm1_kehb0_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_kehb1_p6_ihires_dlores_spr(void) +static void lts_aga_fm1_dpf0_p8_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6510,7 +6903,6 @@ static void lts_aga_fm1_kehb1_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6518,37 +6910,46 @@ static void lts_aga_fm1_kehb1_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl8(); } - loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl8_32(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; - shiftbpl6(); + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6576,7 +6977,7 @@ static void lts_aga_fm1_kehb1_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_n0_p8_ihires_dlores_spr(void) +static void lts_aga_fm1_dpf1_p8_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6588,7 +6989,6 @@ static void lts_aga_fm1_n0_p8_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6596,33 +6996,27 @@ static void lts_aga_fm1_n0_p8_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl8e(); } - loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); } + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; shiftbpl8(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6650,7 +7044,7 @@ static void lts_aga_fm1_n0_p8_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_n1_p8_ihires_dlores_spr(void) +static void lts_aga_fm1_dpf1_p8_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6662,7 +7056,6 @@ static void lts_aga_fm1_n1_p8_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6670,7 +7063,12 @@ static void lts_aga_fm1_n1_p8_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } @@ -6682,24 +7080,35 @@ static void lts_aga_fm1_n1_p8_ihires_dlores_spr(void) copybpl8o(); } loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6727,7 +7136,23 @@ static void lts_aga_fm1_n1_p8_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p8_ihires_dlores_spr(void) +static void lts_aga_fm1_ehb0_p8_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6739,7 +7164,6 @@ static void lts_aga_fm1_dpf0_p8_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6747,12 +7171,7 @@ static void lts_aga_fm1_dpf0_p8_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } @@ -6761,24 +7180,25 @@ static void lts_aga_fm1_dpf0_p8_ihires_dlores_spr(void) copybpl8(); } loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6806,7 +7226,7 @@ static void lts_aga_fm1_dpf0_p8_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p8_ihires_dlores_spr(void) +static void lts_aga_fm1_ham0_p8_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6818,7 +7238,6 @@ static void lts_aga_fm1_dpf1_p8_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6826,41 +7245,36 @@ static void lts_aga_fm1_dpf1_p8_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl8(); } loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6888,15 +7302,7 @@ static void lts_aga_fm1_dpf1_p8_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p8_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p8_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p8_ihires_dlores_spr(void) +static void lts_aga_fm1_ham1_p8_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6908,7 +7314,6 @@ static void lts_aga_fm1_ham0_p8_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6922,17 +7327,12 @@ static void lts_aga_fm1_ham0_p8_ihires_dlores_spr(void) } shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl8e(); } - loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); } + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; uae_u8 pix1 = 0; uae_u32 dpix_val1 = BLANK_COLOR; @@ -6946,18 +7346,15 @@ static void lts_aga_fm1_ham0_p8_ihires_dlores_spr(void) } shiftbpl8(); if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); } loaded_pix = getbpl8_32(); loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6985,7 +7382,7 @@ static void lts_aga_fm1_ham0_p8_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_ham1_p8_ihires_dlores_spr(void) +static void lts_aga_fm1_ham1_p8_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6997,7 +7394,6 @@ static void lts_aga_fm1_ham1_p8_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -7017,14 +7413,6 @@ static void lts_aga_fm1_ham1_p8_ihires_dlores_spr(void) copybpl8o(); } loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } - } loaded_pixs[0] = loaded_pix; uae_u8 pix1 = 0; uae_u32 dpix_val1 = BLANK_COLOR; @@ -7032,7 +7420,8 @@ static void lts_aga_fm1_ham1_p8_ihires_dlores_spr(void) dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); } last_bpl_pix = pix1; } @@ -7047,12 +7436,7 @@ static void lts_aga_fm1_ham1_p8_ihires_dlores_spr(void) loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -7080,335 +7464,23 @@ static void lts_aga_fm1_ham1_p8_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm1_kehb0_p8_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p8_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p2_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_n1_p2_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf0_p2_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf1_p2_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb0_p2_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p2_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p2_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p2_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p2_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p2_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p4_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_n1_p4_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf0_p4_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf1_p4_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb0_p4_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p4_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p4_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p4_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p4_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p4_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p6_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_n1_p6_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf0_p6_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf1_p6_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb0_p6_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p6_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p6_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p6_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p6_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p6_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p8_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_n1_p8_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf0_p8_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf1_p8_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb0_p8_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p8_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p8_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p8_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p8_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p8_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p2_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_n1_p2_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf0_p2_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf1_p2_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb0_p2_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p2_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p2_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p2_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p2_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p2_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p4_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_n1_p4_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf0_p4_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf1_p4_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb0_p4_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p4_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p4_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p4_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p4_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p4_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p6_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_n1_p6_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf0_p6_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf1_p6_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb0_p6_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p6_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p6_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p6_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p6_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p6_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p8_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_n1_p8_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf0_p8_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf1_p8_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb0_p8_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p8_ishres_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p8_ishres_dlores_spr(void) +static void lts_aga_fm1_kehb0_p8_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm1_ham1_p8_ishres_dlores_spr(void) +static void lts_aga_fm1_kehb0_p8_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm1_kehb0_p8_ishres_dlores_spr(void) +static void lts_aga_fm1_kehb1_p8_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm1_kehb1_p8_ishres_dlores_spr(void) +static void lts_aga_fm1_kehb1_p8_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm1_n0_p2_ilores_dhires(void) +static void lts_aga_fm1_n0_p2_ihires_dlores_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7420,6 +7492,7 @@ static void lts_aga_fm1_n0_p2_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -7431,46 +7504,30 @@ static void lts_aga_fm1_n0_p2_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl2(); - loaded_pix = getbpl2_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl2(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl2_32(); } - loaded_pixs[0] = loaded_pix; - internal_pixel_cnt += 2; - uae_u8 pix2 = 0; - uae_u32 dpix_val2 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val2 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix2 = loaded_pixs[2]; - clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + loaded_pix = getbpl2_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; } - last_bpl_pix = pix2; - } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl2(); - loaded_pix = getbpl2_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl2_32(); } - loaded_pixs[2] = loaded_pix; - internal_pixel_cnt += 2; + loaded_pixs[0] = loaded_pix; + shiftbpl2(); + internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; - dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER if (decode_specials_debug) { @@ -7479,14 +7536,6 @@ static void lts_aga_fm1_n0_p2_ilores_dhires(void) #endif *buf1++ = t0; *buf2++ = t0; - uae_u32 t2 = dtbuf[h ^ lol][2]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t2 = decode_denise_specials_debug(t2, cnt + 2); - } - #endif - *buf1++ = t2; - *buf2++ = t2; } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -7505,7 +7554,7 @@ static void lts_aga_fm1_n0_p2_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_n1_p2_ilores_dhires(void) +static void lts_aga_fm1_n0_p2_ihires_dlores_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7517,6 +7566,7 @@ static void lts_aga_fm1_n1_p2_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -7528,27 +7578,7229 @@ static void lts_aga_fm1_n1_p2_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n1_p2_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl2(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n1_p2_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p2_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl2(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p2_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf1_p2_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl2(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf1_p2_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ehb0_p2_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p2_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p2_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p2_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p2_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p2_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p2_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p2_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p2_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p2_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p2_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p2_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n0_p4_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n1_p4_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n1_p4_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p4_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p4_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf1_p4_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf1_p4_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ehb0_p4_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl6(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n0_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n1_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl6(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n1_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl6(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf1_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl6(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf1_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ehb0_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl6(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ehb0_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + if (!(pix1 & 0x20)) { + dpix_val1 = denise_colors.acolors[pix1]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix1 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val1 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix1; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ehb1_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl6(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ehb1_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + if (!(pix1 & 0x20)) { + dpix_val1 = denise_colors.acolors[pix1]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix1 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val1 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix1; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ham0_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ham0_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ham1_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ham1_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_kehb0_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl6(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_kehb0_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[pix1 & 31]; + } + last_bpl_pix = pix1; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_kehb1_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl6(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_kehb1_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; + } + last_bpl_pix = pix0; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[pix1 & 31]; + } + last_bpl_pix = pix1; + } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + } + loaded_pix = getbpl6_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n0_p8_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl8(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n0_p8_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n1_p8_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl8(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n1_p8_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p8_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl8(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p8_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf1_p8_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl8(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf1_p8_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ehb0_p8_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ham0_p8_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ham1_p8_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ham1_p8_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_kehb0_p8_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p8_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p2_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2(); + loaded_pix = getbpl2_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2(); + loaded_pix = getbpl2_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n0_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p2_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2e(); + loaded_pix = getbpl2_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl2o(); + loaded_pix = getbpl2_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_32(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl2_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2e(); + loaded_pix = getbpl2_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl2o(); + loaded_pix = getbpl2_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_32(); + } + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl2_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n1_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p2_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2(); + loaded_pix = getbpl2_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2(); + loaded_pix = getbpl2_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p2_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2e(); + loaded_pix = getbpl2_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl2o(); + loaded_pix = getbpl2_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_32(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl2_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2e(); + loaded_pix = getbpl2_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl2o(); + loaded_pix = getbpl2_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_32(); + } + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl2_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf1_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p2_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p2_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p2_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p2_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p2_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p2_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n0_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p4_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e(); + loaded_pix = getbpl4_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e(); + loaded_pix = getbpl4_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n1_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p4_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p4_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e(); + loaded_pix = getbpl4_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e(); + loaded_pix = getbpl4_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf1_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e(); + loaded_pix = getbpl6_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e(); + loaded_pix = getbpl6_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n1_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e(); + loaded_pix = getbpl6_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e(); + loaded_pix = getbpl6_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf1_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + pix2 ^= bplcon4_denise_xor_val; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ehb0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e(); + loaded_pix = getbpl6_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + pix2 ^= bplcon4_denise_xor_val; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e(); + loaded_pix = getbpl6_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ehb1_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = decode_ham_pixel_aga(pix2); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ham0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e(); + loaded_pix = getbpl6_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = decode_ham_pixel_aga(pix2); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e(); + loaded_pix = getbpl6_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ham1_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_kehb0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2e(); - loaded_pix = getbpl2_32(); + shiftbpl6e(); + loaded_pix = getbpl6_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl2o(); - loaded_pix = getbpl2_32(); + shiftbpl6o(); + loaded_pix = getbpl6_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl6_32(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl6_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e(); + loaded_pix = getbpl6_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o(); + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_32(); + } + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_kehb1_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; @@ -7566,24 +14818,380 @@ static void lts_aga_fm1_n1_p2_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2e(); - loaded_pix = getbpl2_32(); + shiftbpl8(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n0_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e(); + loaded_pix = getbpl8_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl2o(); - loaded_pix = getbpl2_32(); + shiftbpl8o(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e(); + loaded_pix = getbpl8_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n1_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p8_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e(); + loaded_pix = getbpl8_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e(); + loaded_pix = getbpl8_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_32(); } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; @@ -7624,7 +15232,27 @@ static void lts_aga_fm1_n1_p2_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p2_ilores_dhires(void) +static void lts_aga_fm1_dpf1_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ilores_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7643,25 +15271,20 @@ static void lts_aga_fm1_dpf0_p2_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2(); - loaded_pix = getbpl2_32(); + shiftbpl8(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl8(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; @@ -7672,25 +15295,20 @@ static void lts_aga_fm1_dpf0_p2_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2(); - loaded_pix = getbpl2_32(); + shiftbpl8(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl8(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; @@ -7731,7 +15349,11 @@ static void lts_aga_fm1_dpf0_p2_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p2_ilores_dhires(void) +static void lts_aga_fm1_ham0_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ilores_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7750,36 +15372,31 @@ static void lts_aga_fm1_dpf1_p2_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2e(); - loaded_pix = getbpl2_32(); + shiftbpl8e(); + loaded_pix = getbpl8_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl2o(); - loaded_pix = getbpl2_32(); + shiftbpl8o(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; @@ -7790,36 +15407,31 @@ static void lts_aga_fm1_dpf1_p2_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2e(); - loaded_pix = getbpl2_32(); + shiftbpl8e(); + loaded_pix = getbpl8_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl2o(); - loaded_pix = getbpl2_32(); + shiftbpl8o(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; @@ -7860,31 +15472,27 @@ static void lts_aga_fm1_dpf1_p2_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p2_ilores_dhires(void) +static void lts_aga_fm1_ham1_p8_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm1_ehb1_p2_ilores_dhires(void) +static void lts_aga_fm1_kehb0_p8_ilores_dhires(void) { lts_null(); } -static void lts_aga_fm1_ham0_p2_ilores_dhires(void) +static void lts_aga_fm1_kehb0_p8_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm1_ham1_p2_ilores_dhires(void) +static void lts_aga_fm1_kehb1_p8_ilores_dhires(void) { lts_null(); } -static void lts_aga_fm1_kehb0_p2_ilores_dhires(void) +static void lts_aga_fm1_kehb1_p8_ilores_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm1_kehb1_p2_ilores_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p4_ilores_dhires(void) +static void lts_aga_fm1_n0_p2_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7896,6 +15504,7 @@ static void lts_aga_fm1_n0_p4_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -7910,16 +15519,25 @@ static void lts_aga_fm1_n0_p4_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4_32(); + shiftbpl2(); + loaded_pix = getbpl2_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl2(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); + loaded_pix = getbpl2_32(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -7934,18 +15552,38 @@ static void lts_aga_fm1_n0_p4_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4_32(); + shiftbpl2(); + loaded_pix = getbpl2_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl2(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); + loaded_pix = getbpl2_32(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -7981,7 +15619,11 @@ static void lts_aga_fm1_n0_p4_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_n1_p4_ilores_dhires(void) +static void lts_aga_fm1_n0_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p2_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7993,6 +15635,7 @@ static void lts_aga_fm1_n1_p4_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -8007,27 +15650,36 @@ static void lts_aga_fm1_n1_p4_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4_32(); + shiftbpl2e(); + loaded_pix = getbpl2_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4_32(); + shiftbpl2o(); + loaded_pix = getbpl2_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl2e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); + loaded_pix = getbpl2_32(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl2o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl4_32(); + loaded_pix = getbpl2_32(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -8042,29 +15694,49 @@ static void lts_aga_fm1_n1_p4_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4_32(); + shiftbpl2e(); + loaded_pix = getbpl2_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4_32(); + shiftbpl2o(); + loaded_pix = getbpl2_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl2e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); + loaded_pix = getbpl2_32(); } if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl2o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl4_32(); + loaded_pix = getbpl2_32(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -8100,7 +15772,11 @@ static void lts_aga_fm1_n1_p4_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p4_ilores_dhires(void) +static void lts_aga_fm1_n1_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p2_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8112,6 +15788,7 @@ static void lts_aga_fm1_dpf0_p4_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -8131,16 +15808,25 @@ static void lts_aga_fm1_dpf0_p4_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4_32(); + shiftbpl2(); + loaded_pix = getbpl2_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl2(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); + loaded_pix = getbpl2_32(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -8160,18 +15846,38 @@ static void lts_aga_fm1_dpf0_p4_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4_32(); + shiftbpl2(); + loaded_pix = getbpl2_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl2(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); + loaded_pix = getbpl2_32(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -8207,7 +15913,11 @@ static void lts_aga_fm1_dpf0_p4_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p4_ilores_dhires(void) +static void lts_aga_fm1_dpf0_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p2_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8219,6 +15929,7 @@ static void lts_aga_fm1_dpf1_p4_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -8238,27 +15949,36 @@ static void lts_aga_fm1_dpf1_p4_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4_32(); + shiftbpl2e(); + loaded_pix = getbpl2_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4_32(); + shiftbpl2o(); + loaded_pix = getbpl2_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl2e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); + loaded_pix = getbpl2_32(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl2o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl4_32(); + loaded_pix = getbpl2_32(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -8278,29 +15998,49 @@ static void lts_aga_fm1_dpf1_p4_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4_32(); + shiftbpl2e(); + loaded_pix = getbpl2_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4_32(); + shiftbpl2o(); + loaded_pix = getbpl2_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl2e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); + loaded_pix = getbpl2_32(); } if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl2o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl4_32(); + loaded_pix = getbpl2_32(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -8336,31 +16076,59 @@ static void lts_aga_fm1_dpf1_p4_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p4_ilores_dhires(void) +static void lts_aga_fm1_dpf1_p2_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_ehb1_p4_ilores_dhires(void) +static void lts_aga_fm1_ehb0_p2_ilores_dhires_spr(void) { lts_null(); } -static void lts_aga_fm1_ham0_p4_ilores_dhires(void) +static void lts_aga_fm1_ehb0_p2_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_ham1_p4_ilores_dhires(void) +static void lts_aga_fm1_ehb1_p2_ilores_dhires_spr(void) { lts_null(); } -static void lts_aga_fm1_kehb0_p4_ilores_dhires(void) +static void lts_aga_fm1_ehb1_p2_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_kehb1_p4_ilores_dhires(void) +static void lts_aga_fm1_ham0_p2_ilores_dhires_spr(void) { lts_null(); } -static void lts_aga_fm1_n0_p6_ilores_dhires(void) +static void lts_aga_fm1_ham0_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p2_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p2_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p2_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8372,6 +16140,7 @@ static void lts_aga_fm1_n0_p6_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -8386,16 +16155,25 @@ static void lts_aga_fm1_n0_p6_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6_32(); + shiftbpl4(); + loaded_pix = getbpl4_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl4(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -8410,18 +16188,38 @@ static void lts_aga_fm1_n0_p6_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6_32(); + shiftbpl4(); + loaded_pix = getbpl4_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl4(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -8457,7 +16255,11 @@ static void lts_aga_fm1_n0_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_n1_p6_ilores_dhires(void) +static void lts_aga_fm1_n0_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p4_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8469,6 +16271,7 @@ static void lts_aga_fm1_n1_p6_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -8483,27 +16286,36 @@ static void lts_aga_fm1_n1_p6_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6_32(); + shiftbpl4e(); + loaded_pix = getbpl4_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6_32(); + shiftbpl4o(); + loaded_pix = getbpl4_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl4e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl4o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -8518,29 +16330,49 @@ static void lts_aga_fm1_n1_p6_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6_32(); + shiftbpl4e(); + loaded_pix = getbpl4_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6_32(); + shiftbpl4o(); + loaded_pix = getbpl4_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl4e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); } if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl4o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -8576,7 +16408,11 @@ static void lts_aga_fm1_n1_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p6_ilores_dhires(void) +static void lts_aga_fm1_n1_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p4_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8588,6 +16424,7 @@ static void lts_aga_fm1_dpf0_p6_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -8607,16 +16444,25 @@ static void lts_aga_fm1_dpf0_p6_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6_32(); + shiftbpl4(); + loaded_pix = getbpl4_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl4(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -8636,18 +16482,38 @@ static void lts_aga_fm1_dpf0_p6_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6_32(); + shiftbpl4(); + loaded_pix = getbpl4_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl4(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -8683,7 +16549,11 @@ static void lts_aga_fm1_dpf0_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p6_ilores_dhires(void) +static void lts_aga_fm1_dpf0_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p4_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8695,6 +16565,7 @@ static void lts_aga_fm1_dpf1_p6_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -8714,27 +16585,36 @@ static void lts_aga_fm1_dpf1_p6_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6_32(); + shiftbpl4e(); + loaded_pix = getbpl4_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6_32(); + shiftbpl4o(); + loaded_pix = getbpl4_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl4e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl4o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -8754,29 +16634,49 @@ static void lts_aga_fm1_dpf1_p6_ilores_dhires(void) bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6_32(); + shiftbpl4e(); + loaded_pix = getbpl4_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6_32(); + shiftbpl4o(); + loaded_pix = getbpl4_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl4e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); } if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl4o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl6_32(); + loaded_pix = getbpl4_32(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -8812,7 +16712,59 @@ static void lts_aga_fm1_dpf1_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p6_ilores_dhires(void) +static void lts_aga_fm1_dpf1_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8824,6 +16776,7 @@ static void lts_aga_fm1_ehb0_p6_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -8831,13 +16784,7 @@ static void lts_aga_fm1_ehb0_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); - } + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } @@ -8852,8 +16799,17 @@ static void lts_aga_fm1_ehb0_p6_ilores_dhires(void) bplshiftcnt[0] = 0; loaded_pix = getbpl6_32(); } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -8861,13 +16817,7 @@ static void lts_aga_fm1_ehb0_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); - } + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } @@ -8882,10 +16832,30 @@ static void lts_aga_fm1_ehb0_p6_ilores_dhires(void) bplshiftcnt[0] = 0; loaded_pix = getbpl6_32(); } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -8921,7 +16891,11 @@ static void lts_aga_fm1_ehb0_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_ehb1_p6_ilores_dhires(void) +static void lts_aga_fm1_n0_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8933,6 +16907,7 @@ static void lts_aga_fm1_ehb1_p6_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -8940,13 +16915,7 @@ static void lts_aga_fm1_ehb1_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); - } + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } @@ -8972,8 +16941,17 @@ static void lts_aga_fm1_ehb1_p6_ilores_dhires(void) bplshiftcnt[1] = 0; loaded_pix = getbpl6_32(); } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -8981,13 +16959,7 @@ static void lts_aga_fm1_ehb1_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); - } + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } @@ -9013,10 +16985,30 @@ static void lts_aga_fm1_ehb1_p6_ilores_dhires(void) bplshiftcnt[1] = 0; loaded_pix = getbpl6_32(); } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -9052,7 +17044,11 @@ static void lts_aga_fm1_ehb1_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_ham0_p6_ilores_dhires(void) +static void lts_aga_fm1_n1_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9064,6 +17060,7 @@ static void lts_aga_fm1_ham0_p6_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -9071,7 +17068,12 @@ static void lts_aga_fm1_ham0_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } @@ -9086,8 +17088,17 @@ static void lts_aga_fm1_ham0_p6_ilores_dhires(void) bplshiftcnt[0] = 0; loaded_pix = getbpl6_32(); } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -9095,7 +17106,12 @@ static void lts_aga_fm1_ham0_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } @@ -9110,10 +17126,30 @@ static void lts_aga_fm1_ham0_p6_ilores_dhires(void) bplshiftcnt[0] = 0; loaded_pix = getbpl6_32(); } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -9149,7 +17185,11 @@ static void lts_aga_fm1_ham0_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_ham1_p6_ilores_dhires(void) +static void lts_aga_fm1_dpf0_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9161,6 +17201,7 @@ static void lts_aga_fm1_ham1_p6_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -9168,7 +17209,12 @@ static void lts_aga_fm1_ham1_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } @@ -9194,8 +17240,17 @@ static void lts_aga_fm1_ham1_p6_ilores_dhires(void) bplshiftcnt[1] = 0; loaded_pix = getbpl6_32(); } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -9203,7 +17258,12 @@ static void lts_aga_fm1_ham1_p6_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } @@ -9229,10 +17289,30 @@ static void lts_aga_fm1_ham1_p6_ilores_dhires(void) bplshiftcnt[1] = 0; loaded_pix = getbpl6_32(); } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -9268,7 +17348,11 @@ static void lts_aga_fm1_ham1_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_kehb0_p6_ilores_dhires(void) +static void lts_aga_fm1_dpf1_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9280,6 +17364,7 @@ static void lts_aga_fm1_kehb0_p6_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -9288,7 +17373,12 @@ static void lts_aga_fm1_kehb0_p6_ilores_dhires(void) pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } } last_bpl_pix = pix0; } @@ -9303,8 +17393,17 @@ static void lts_aga_fm1_kehb0_p6_ilores_dhires(void) bplshiftcnt[0] = 0; loaded_pix = getbpl6_32(); } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -9313,7 +17412,12 @@ static void lts_aga_fm1_kehb0_p6_ilores_dhires(void) pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } } last_bpl_pix = pix2; } @@ -9328,10 +17432,30 @@ static void lts_aga_fm1_kehb0_p6_ilores_dhires(void) bplshiftcnt[0] = 0; loaded_pix = getbpl6_32(); } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -9367,7 +17491,11 @@ static void lts_aga_fm1_kehb0_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_kehb1_p6_ilores_dhires(void) +static void lts_aga_fm1_ehb0_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9379,6 +17507,7 @@ static void lts_aga_fm1_kehb1_p6_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -9387,7 +17516,12 @@ static void lts_aga_fm1_kehb1_p6_ilores_dhires(void) pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } } last_bpl_pix = pix0; } @@ -9413,8 +17547,17 @@ static void lts_aga_fm1_kehb1_p6_ilores_dhires(void) bplshiftcnt[1] = 0; loaded_pix = getbpl6_32(); } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -9423,7 +17566,12 @@ static void lts_aga_fm1_kehb1_p6_ilores_dhires(void) pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } } last_bpl_pix = pix2; } @@ -9449,10 +17597,30 @@ static void lts_aga_fm1_kehb1_p6_ilores_dhires(void) bplshiftcnt[1] = 0; loaded_pix = getbpl6_32(); } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -9488,7 +17656,11 @@ static void lts_aga_fm1_kehb1_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_n0_p8_ilores_dhires(void) +static void lts_aga_fm1_ehb1_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9500,6 +17672,7 @@ static void lts_aga_fm1_n0_p8_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -9507,23 +17680,32 @@ static void lts_aga_fm1_n0_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); + shiftbpl6(); + loaded_pix = getbpl6_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); + loaded_pix = getbpl6_32(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -9531,25 +17713,45 @@ static void lts_aga_fm1_n0_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); + shiftbpl6(); + loaded_pix = getbpl6_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); + loaded_pix = getbpl6_32(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -9585,7 +17787,11 @@ static void lts_aga_fm1_n0_p8_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_n1_p8_ilores_dhires(void) +static void lts_aga_fm1_ham0_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9597,6 +17803,7 @@ static void lts_aga_fm1_n1_p8_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -9604,34 +17811,43 @@ static void lts_aga_fm1_n1_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); + shiftbpl6e(); + loaded_pix = getbpl6_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8_32(); + shiftbpl6o(); + loaded_pix = getbpl6_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); + loaded_pix = getbpl6_32(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); + loaded_pix = getbpl6_32(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -9639,36 +17855,56 @@ static void lts_aga_fm1_n1_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); + shiftbpl6e(); + loaded_pix = getbpl6_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8_32(); + shiftbpl6o(); + loaded_pix = getbpl6_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); + loaded_pix = getbpl6_32(); } if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); + loaded_pix = getbpl6_32(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -9704,7 +17940,11 @@ static void lts_aga_fm1_n1_p8_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p8_ilores_dhires(void) +static void lts_aga_fm1_ham1_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9716,6 +17956,7 @@ static void lts_aga_fm1_dpf0_p8_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -9723,28 +17964,33 @@ static void lts_aga_fm1_dpf0_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); + shiftbpl6(); + loaded_pix = getbpl6_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); + loaded_pix = getbpl6_32(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -9752,30 +17998,46 @@ static void lts_aga_fm1_dpf0_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); + shiftbpl6(); + loaded_pix = getbpl6_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl6(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); + loaded_pix = getbpl6_32(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -9811,7 +18073,11 @@ static void lts_aga_fm1_dpf0_p8_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p8_ilores_dhires(void) +static void lts_aga_fm1_kehb0_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9823,6 +18089,7 @@ static void lts_aga_fm1_dpf1_p8_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -9830,39 +18097,44 @@ static void lts_aga_fm1_dpf1_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); + shiftbpl6e(); + loaded_pix = getbpl6_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8_32(); + shiftbpl6o(); + loaded_pix = getbpl6_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); + loaded_pix = getbpl6_32(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); + loaded_pix = getbpl6_32(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -9870,41 +18142,57 @@ static void lts_aga_fm1_dpf1_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); + shiftbpl6e(); + loaded_pix = getbpl6_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8_32(); + shiftbpl6o(); + loaded_pix = getbpl6_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl6e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); + loaded_pix = getbpl6_32(); } if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl6o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); + loaded_pix = getbpl6_32(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -9940,15 +18228,11 @@ static void lts_aga_fm1_dpf1_p8_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p8_ilores_dhires(void) +static void lts_aga_fm1_kehb1_p6_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_ehb1_p8_ilores_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p8_ilores_dhires(void) +static void lts_aga_fm1_n0_p8_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9960,6 +18244,7 @@ static void lts_aga_fm1_ham0_p8_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -9967,7 +18252,7 @@ static void lts_aga_fm1_ham0_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } @@ -9982,8 +18267,17 @@ static void lts_aga_fm1_ham0_p8_ilores_dhires(void) bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -9991,7 +18285,7 @@ static void lts_aga_fm1_ham0_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } @@ -10006,10 +18300,30 @@ static void lts_aga_fm1_ham0_p8_ilores_dhires(void) bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -10045,7 +18359,11 @@ static void lts_aga_fm1_ham0_p8_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_ham1_p8_ilores_dhires(void) +static void lts_aga_fm1_n0_p8_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10057,6 +18375,7 @@ static void lts_aga_fm1_ham1_p8_ilores_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -10064,7 +18383,7 @@ static void lts_aga_fm1_ham1_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } @@ -10090,8 +18409,17 @@ static void lts_aga_fm1_ham1_p8_ilores_dhires(void) bplshiftcnt[1] = 0; loaded_pix = getbpl8_32(); } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -10099,7 +18427,7 @@ static void lts_aga_fm1_ham1_p8_ilores_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } @@ -10125,10 +18453,30 @@ static void lts_aga_fm1_ham1_p8_ilores_dhires(void) bplshiftcnt[1] = 0; loaded_pix = getbpl8_32(); } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -10164,15 +18512,11 @@ static void lts_aga_fm1_ham1_p8_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm1_kehb0_p8_ilores_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p8_ilores_dhires(void) +static void lts_aga_fm1_n1_p8_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_n0_p2_ilores_dhires_spr(void) +static void lts_aga_fm1_dpf0_p8_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10192,20 +18536,25 @@ static void lts_aga_fm1_n0_p2_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2(); - loaded_pix = getbpl2_32(); + shiftbpl8(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl8(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { @@ -10225,20 +18574,25 @@ static void lts_aga_fm1_n0_p2_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2(); - loaded_pix = getbpl2_32(); + shiftbpl8(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl8(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { @@ -10299,7 +18653,11 @@ static void lts_aga_fm1_n0_p2_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_n1_p2_ilores_dhires_spr(void) +static void lts_aga_fm1_dpf0_p8_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10319,31 +18677,36 @@ static void lts_aga_fm1_n1_p2_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2e(); - loaded_pix = getbpl2_32(); + shiftbpl8e(); + loaded_pix = getbpl8_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl2o(); - loaded_pix = getbpl2_32(); + shiftbpl8o(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { @@ -10363,31 +18726,36 @@ static void lts_aga_fm1_n1_p2_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2e(); - loaded_pix = getbpl2_32(); + shiftbpl8e(); + loaded_pix = getbpl8_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl2o(); - loaded_pix = getbpl2_32(); + shiftbpl8o(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { @@ -10448,7 +18816,27 @@ static void lts_aga_fm1_n1_p2_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p2_ilores_dhires_spr(void) +static void lts_aga_fm1_dpf1_p8_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10468,25 +18856,20 @@ static void lts_aga_fm1_dpf0_p2_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2(); - loaded_pix = getbpl2_32(); + shiftbpl8(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl8(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { @@ -10506,25 +18889,20 @@ static void lts_aga_fm1_dpf0_p2_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2(); - loaded_pix = getbpl2_32(); + shiftbpl8(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl8(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { @@ -10585,7 +18963,11 @@ static void lts_aga_fm1_dpf0_p2_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p2_ilores_dhires_spr(void) +static void lts_aga_fm1_ham0_p8_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ilores_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10605,36 +18987,31 @@ static void lts_aga_fm1_dpf1_p2_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2e(); - loaded_pix = getbpl2_32(); + shiftbpl8e(); + loaded_pix = getbpl8_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl2o(); - loaded_pix = getbpl2_32(); + shiftbpl8o(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { @@ -10654,36 +19031,31 @@ static void lts_aga_fm1_dpf1_p2_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } bplshiftcnt[0] += 2; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl2e(); - loaded_pix = getbpl2_32(); + shiftbpl8e(); + loaded_pix = getbpl8_32(); } bplshiftcnt[1] += 2; if (bplshiftcnt[1] >= 4) { bplshiftcnt[1] = 0; - shiftbpl2o(); - loaded_pix = getbpl2_32(); + shiftbpl8o(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl8e(); bplshiftcnt[0] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl8o(); bplshiftcnt[1] = 0; - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); } uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { @@ -10744,31 +19116,27 @@ static void lts_aga_fm1_dpf1_p2_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p2_ilores_dhires_spr(void) +static void lts_aga_fm1_ham1_p8_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_ehb1_p2_ilores_dhires_spr(void) +static void lts_aga_fm1_kehb0_p8_ilores_dhires_spr(void) { lts_null(); } -static void lts_aga_fm1_ham0_p2_ilores_dhires_spr(void) +static void lts_aga_fm1_kehb0_p8_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_ham1_p2_ilores_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p2_ilores_dhires_spr(void) +static void lts_aga_fm1_kehb1_p8_ilores_dhires_spr(void) { lts_null(); } -static void lts_aga_fm1_kehb1_p2_ilores_dhires_spr(void) +static void lts_aga_fm1_kehb1_p8_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_n0_p4_ilores_dhires_spr(void) +static void lts_aga_fm1_n0_p2_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10780,7 +19148,6 @@ static void lts_aga_fm1_n0_p4_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -10792,28 +19159,13 @@ static void lts_aga_fm1_n0_p4_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2(); } + loaded_pix = getbpl2_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -10825,41 +19177,15 @@ static void lts_aga_fm1_n0_p4_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2(); } + loaded_pix = getbpl2_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -10895,7 +19221,11 @@ static void lts_aga_fm1_n0_p4_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_n1_p4_ilores_dhires_spr(void) +static void lts_aga_fm1_n0_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p2_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10907,7 +19237,6 @@ static void lts_aga_fm1_n1_p4_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -10919,39 +19248,16 @@ static void lts_aga_fm1_n1_p4_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_32(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -10963,52 +19269,18 @@ static void lts_aga_fm1_n1_p4_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_32(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -11044,7 +19316,11 @@ static void lts_aga_fm1_n1_p4_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p4_ilores_dhires_spr(void) +static void lts_aga_fm1_n1_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p2_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11056,7 +19332,6 @@ static void lts_aga_fm1_dpf0_p4_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -11073,28 +19348,13 @@ static void lts_aga_fm1_dpf0_p4_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2(); } + loaded_pix = getbpl2_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -11111,41 +19371,15 @@ static void lts_aga_fm1_dpf0_p4_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2(); } + loaded_pix = getbpl2_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -11181,7 +19415,11 @@ static void lts_aga_fm1_dpf0_p4_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p4_ilores_dhires_spr(void) +static void lts_aga_fm1_dpf0_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p2_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11193,7 +19431,6 @@ static void lts_aga_fm1_dpf1_p4_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -11210,39 +19447,16 @@ static void lts_aga_fm1_dpf1_p4_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_32(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -11259,52 +19473,18 @@ static void lts_aga_fm1_dpf1_p4_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_32(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -11340,31 +19520,59 @@ static void lts_aga_fm1_dpf1_p4_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p4_ilores_dhires_spr(void) +static void lts_aga_fm1_dpf1_p2_ihires_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm1_ehb1_p4_ilores_dhires_spr(void) +static void lts_aga_fm1_ehb0_p2_ihires_dhires(void) { lts_null(); } -static void lts_aga_fm1_ham0_p4_ilores_dhires_spr(void) +static void lts_aga_fm1_ehb0_p2_ihires_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm1_ham1_p4_ilores_dhires_spr(void) +static void lts_aga_fm1_ehb1_p2_ihires_dhires(void) { lts_null(); } -static void lts_aga_fm1_kehb0_p4_ilores_dhires_spr(void) +static void lts_aga_fm1_ehb1_p2_ihires_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm1_kehb1_p4_ilores_dhires_spr(void) +static void lts_aga_fm1_ham0_p2_ihires_dhires(void) { lts_null(); } -static void lts_aga_fm1_n0_p6_ilores_dhires_spr(void) +static void lts_aga_fm1_ham0_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p2_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p2_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p2_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11376,7 +19584,6 @@ static void lts_aga_fm1_n0_p6_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -11388,28 +19595,13 @@ static void lts_aga_fm1_n0_p6_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -11421,41 +19613,15 @@ static void lts_aga_fm1_n0_p6_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); } + loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -11491,7 +19657,11 @@ static void lts_aga_fm1_n0_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_n1_p6_ilores_dhires_spr(void) +static void lts_aga_fm1_n0_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p4_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11503,7 +19673,6 @@ static void lts_aga_fm1_n1_p6_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -11515,39 +19684,16 @@ static void lts_aga_fm1_n1_p6_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_32(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -11559,52 +19705,18 @@ static void lts_aga_fm1_n1_p6_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_32(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -11640,7 +19752,11 @@ static void lts_aga_fm1_n1_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p6_ilores_dhires_spr(void) +static void lts_aga_fm1_n1_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p4_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11652,7 +19768,6 @@ static void lts_aga_fm1_dpf0_p6_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -11669,28 +19784,13 @@ static void lts_aga_fm1_dpf0_p6_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -11707,41 +19807,15 @@ static void lts_aga_fm1_dpf0_p6_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); } + loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -11777,7 +19851,11 @@ static void lts_aga_fm1_dpf0_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p6_ilores_dhires_spr(void) +static void lts_aga_fm1_dpf0_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p4_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11789,56 +19867,32 @@ static void lts_aga_fm1_dpf1_p6_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { dpix_val0 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; - clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - } - last_bpl_pix = pix0; - } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_32(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -11855,52 +19909,18 @@ static void lts_aga_fm1_dpf1_p6_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_32(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -11936,7 +19956,59 @@ static void lts_aga_fm1_dpf1_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p6_ilores_dhires_spr(void) +static void lts_aga_fm1_dpf1_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11948,7 +20020,6 @@ static void lts_aga_fm1_ehb0_p6_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -11956,38 +20027,17 @@ static void lts_aga_fm1_ehb0_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); - } + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl6(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } } + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -11995,51 +20045,19 @@ static void lts_aga_fm1_ehb0_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); - } + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl6(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } } + loaded_pix = getbpl6_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -12075,7 +20093,11 @@ static void lts_aga_fm1_ehb0_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_ehb1_p6_ilores_dhires_spr(void) +static void lts_aga_fm1_n0_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12087,7 +20109,6 @@ static void lts_aga_fm1_ehb1_p6_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -12095,49 +20116,20 @@ static void lts_aga_fm1_ehb1_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); - } + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl6e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { copybpl6o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } } + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -12145,62 +20137,22 @@ static void lts_aga_fm1_ehb1_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); - } + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl6e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { copybpl6o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } } + loaded_pix = getbpl6_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -12236,7 +20188,11 @@ static void lts_aga_fm1_ehb1_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_ham0_p6_ilores_dhires_spr(void) +static void lts_aga_fm1_n1_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12248,7 +20204,6 @@ static void lts_aga_fm1_ham0_p6_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -12256,32 +20211,22 @@ static void lts_aga_fm1_ham0_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl6(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } } + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -12289,45 +20234,24 @@ static void lts_aga_fm1_ham0_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl6(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } } + loaded_pix = getbpl6_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -12363,7 +20287,11 @@ static void lts_aga_fm1_ham0_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_ham1_p6_ilores_dhires_spr(void) +static void lts_aga_fm1_dpf0_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12375,7 +20303,6 @@ static void lts_aga_fm1_ham1_p6_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -12383,43 +20310,25 @@ static void lts_aga_fm1_ham1_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl6e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { copybpl6o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } } + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -12427,56 +20336,27 @@ static void lts_aga_fm1_ham1_p6_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl6e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { copybpl6o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } } + loaded_pix = getbpl6_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -12512,7 +20392,11 @@ static void lts_aga_fm1_ham1_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_kehb0_p6_ilores_dhires_spr(void) +static void lts_aga_fm1_dpf1_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12524,7 +20408,6 @@ static void lts_aga_fm1_kehb0_p6_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -12533,32 +20416,22 @@ static void lts_aga_fm1_kehb0_p6_ilores_dhires_spr(void) pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl6(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } } + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -12567,45 +20440,24 @@ static void lts_aga_fm1_kehb0_p6_ilores_dhires_spr(void) pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); } + loaded_pix = getbpl6_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -12641,7 +20493,11 @@ static void lts_aga_fm1_kehb0_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_kehb1_p6_ilores_dhires_spr(void) +static void lts_aga_fm1_ehb0_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12653,7 +20509,6 @@ static void lts_aga_fm1_kehb1_p6_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -12662,43 +20517,25 @@ static void lts_aga_fm1_kehb1_p6_ilores_dhires_spr(void) pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl6e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { copybpl6o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } } + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -12707,56 +20544,27 @@ static void lts_aga_fm1_kehb1_p6_ilores_dhires_spr(void) pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e(); - loaded_pix = getbpl6_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o(); - loaded_pix = getbpl6_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl6e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_32(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { copybpl6o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } } + loaded_pix = getbpl6_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -12792,7 +20600,11 @@ static void lts_aga_fm1_kehb1_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_n0_p8_ilores_dhires_spr(void) +static void lts_aga_fm1_ehb1_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12804,7 +20616,6 @@ static void lts_aga_fm1_n0_p8_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -12812,32 +20623,17 @@ static void lts_aga_fm1_n0_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); } + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -12845,45 +20641,19 @@ static void lts_aga_fm1_n0_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); } + loaded_pix = getbpl6_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -12919,7 +20689,11 @@ static void lts_aga_fm1_n0_p8_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_n1_p8_ilores_dhires_spr(void) +static void lts_aga_fm1_ham0_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12931,7 +20705,6 @@ static void lts_aga_fm1_n1_p8_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -12939,43 +20712,20 @@ static void lts_aga_fm1_n1_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); } + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -12983,56 +20733,22 @@ static void lts_aga_fm1_n1_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); } + loaded_pix = getbpl6_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -13068,7 +20784,11 @@ static void lts_aga_fm1_n1_p8_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p8_ilores_dhires_spr(void) +static void lts_aga_fm1_ham1_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13080,7 +20800,6 @@ static void lts_aga_fm1_dpf0_p8_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -13088,37 +20807,18 @@ static void lts_aga_fm1_dpf0_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); } + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -13126,50 +20826,20 @@ static void lts_aga_fm1_dpf0_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6(); } + loaded_pix = getbpl6_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -13205,7 +20875,11 @@ static void lts_aga_fm1_dpf0_p8_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p8_ilores_dhires_spr(void) +static void lts_aga_fm1_kehb0_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13217,7 +20891,6 @@ static void lts_aga_fm1_dpf1_p8_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -13225,48 +20898,21 @@ static void lts_aga_fm1_dpf1_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); } + loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -13274,61 +20920,23 @@ static void lts_aga_fm1_dpf1_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); + shiftbpl6(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e(); } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o(); } + loaded_pix = getbpl6_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -13364,15 +20972,11 @@ static void lts_aga_fm1_dpf1_p8_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p8_ilores_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p8_ilores_dhires_spr(void) +static void lts_aga_fm1_kehb1_p6_ihires_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm1_ham0_p8_ilores_dhires_spr(void) +static void lts_aga_fm1_n0_p8_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13384,7 +20988,6 @@ static void lts_aga_fm1_ham0_p8_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -13392,32 +20995,17 @@ static void lts_aga_fm1_ham0_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } } + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -13425,45 +21013,19 @@ static void lts_aga_fm1_ham0_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } } + loaded_pix = getbpl8_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -13499,7 +21061,11 @@ static void lts_aga_fm1_ham0_p8_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_ham1_p8_ilores_dhires_spr(void) +static void lts_aga_fm1_n0_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13511,7 +21077,6 @@ static void lts_aga_fm1_ham1_p8_ilores_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -13519,43 +21084,20 @@ static void lts_aga_fm1_ham1_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl8e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } } + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -13563,56 +21105,22 @@ static void lts_aga_fm1_ham1_p8_ilores_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl8e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } } + loaded_pix = getbpl8_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -13648,15 +21156,11 @@ static void lts_aga_fm1_ham1_p8_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_kehb0_p8_ilores_dhires_spr(void) +static void lts_aga_fm1_n1_p8_ihires_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm1_kehb1_p8_ilores_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p2_ihires_dhires(void) +static void lts_aga_fm1_dpf0_p8_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13675,15 +21179,20 @@ static void lts_aga_fm1_n0_p2_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl8(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -13693,15 +21202,20 @@ static void lts_aga_fm1_n0_p2_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl2(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl8(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -13741,7 +21255,11 @@ static void lts_aga_fm1_n0_p2_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_n1_p2_ihires_dhires(void) +static void lts_aga_fm1_dpf0_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13760,18 +21278,23 @@ static void lts_aga_fm1_n1_p2_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl8e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl8o(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -13781,18 +21304,23 @@ static void lts_aga_fm1_n1_p2_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl2(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl8e(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl8o(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -13832,7 +21360,27 @@ static void lts_aga_fm1_n1_p2_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p2_ihires_dhires(void) +static void lts_aga_fm1_dpf1_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13851,20 +21399,15 @@ static void lts_aga_fm1_dpf0_p2_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl8(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -13874,20 +21417,15 @@ static void lts_aga_fm1_dpf0_p2_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } - shiftbpl2(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl8(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -13927,7 +21465,11 @@ static void lts_aga_fm1_dpf0_p2_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p2_ihires_dhires(void) +static void lts_aga_fm1_ham0_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13946,23 +21488,18 @@ static void lts_aga_fm1_dpf1_p2_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl8e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl8o(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -13972,23 +21509,18 @@ static void lts_aga_fm1_dpf1_p2_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } - shiftbpl2(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl8e(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl8o(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -14028,31 +21560,27 @@ static void lts_aga_fm1_dpf1_p2_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p2_ihires_dhires(void) +static void lts_aga_fm1_ham1_p8_ihires_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm1_ehb1_p2_ihires_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p2_ihires_dhires(void) +static void lts_aga_fm1_kehb0_p8_ihires_dhires(void) { lts_null(); } -static void lts_aga_fm1_ham1_p2_ihires_dhires(void) +static void lts_aga_fm1_kehb0_p8_ihires_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm1_kehb0_p2_ihires_dhires(void) +static void lts_aga_fm1_kehb1_p8_ihires_dhires(void) { lts_null(); } -static void lts_aga_fm1_kehb1_p2_ihires_dhires(void) +static void lts_aga_fm1_kehb1_p8_ihires_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm1_n0_p4_ihires_dhires(void) +static void lts_aga_fm1_n0_p2_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14064,6 +21592,7 @@ static void lts_aga_fm1_n0_p4_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -14075,13 +21604,22 @@ static void lts_aga_fm1_n0_p4_ihires_dhires(void) } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl2(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -14093,15 +21631,35 @@ static void lts_aga_fm1_n0_p4_ihires_dhires(void) } last_bpl_pix = pix2; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl2(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -14137,7 +21695,11 @@ static void lts_aga_fm1_n0_p4_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_n1_p4_ihires_dhires(void) +static void lts_aga_fm1_n0_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p2_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14149,6 +21711,7 @@ static void lts_aga_fm1_n1_p4_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -14160,16 +21723,25 @@ static void lts_aga_fm1_n1_p4_ihires_dhires(void) } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl2e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl2o(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -14181,18 +21753,38 @@ static void lts_aga_fm1_n1_p4_ihires_dhires(void) } last_bpl_pix = pix2; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl2e(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl2o(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -14228,7 +21820,11 @@ static void lts_aga_fm1_n1_p4_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p4_ihires_dhires(void) +static void lts_aga_fm1_n1_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p2_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14240,6 +21836,7 @@ static void lts_aga_fm1_dpf0_p4_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -14256,13 +21853,22 @@ static void lts_aga_fm1_dpf0_p4_ihires_dhires(void) } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl2(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -14279,15 +21885,35 @@ static void lts_aga_fm1_dpf0_p4_ihires_dhires(void) } last_bpl_pix = pix2; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl2(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -14323,7 +21949,11 @@ static void lts_aga_fm1_dpf0_p4_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p4_ihires_dhires(void) +static void lts_aga_fm1_dpf0_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p2_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14335,6 +21965,7 @@ static void lts_aga_fm1_dpf1_p4_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -14351,16 +21982,25 @@ static void lts_aga_fm1_dpf1_p4_ihires_dhires(void) } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl2e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl2o(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -14377,18 +22017,38 @@ static void lts_aga_fm1_dpf1_p4_ihires_dhires(void) } last_bpl_pix = pix2; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl2e(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl2o(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -14424,31 +22084,59 @@ static void lts_aga_fm1_dpf1_p4_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p4_ihires_dhires(void) +static void lts_aga_fm1_dpf1_p2_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_ehb1_p4_ihires_dhires(void) +static void lts_aga_fm1_ehb0_p2_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm1_ham0_p4_ihires_dhires(void) +static void lts_aga_fm1_ehb0_p2_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_ham1_p4_ihires_dhires(void) +static void lts_aga_fm1_ehb1_p2_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm1_kehb0_p4_ihires_dhires(void) +static void lts_aga_fm1_ehb1_p2_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_kehb1_p4_ihires_dhires(void) +static void lts_aga_fm1_ham0_p2_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm1_n0_p6_ihires_dhires(void) +static void lts_aga_fm1_ham0_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p2_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p2_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p2_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14460,6 +22148,7 @@ static void lts_aga_fm1_n0_p6_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -14471,13 +22160,22 @@ static void lts_aga_fm1_n0_p6_ihires_dhires(void) } last_bpl_pix = pix0; } - shiftbpl6(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl4(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -14489,15 +22187,35 @@ static void lts_aga_fm1_n0_p6_ihires_dhires(void) } last_bpl_pix = pix2; } - shiftbpl6(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl4(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl6_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -14533,7 +22251,11 @@ static void lts_aga_fm1_n0_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_n1_p6_ihires_dhires(void) +static void lts_aga_fm1_n0_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p4_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14545,6 +22267,7 @@ static void lts_aga_fm1_n1_p6_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -14556,16 +22279,25 @@ static void lts_aga_fm1_n1_p6_ihires_dhires(void) } last_bpl_pix = pix0; } - shiftbpl6(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl4e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl4o(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -14577,18 +22309,38 @@ static void lts_aga_fm1_n1_p6_ihires_dhires(void) } last_bpl_pix = pix2; } - shiftbpl6(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl4e(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl4o(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl6_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -14624,7 +22376,11 @@ static void lts_aga_fm1_n1_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p6_ihires_dhires(void) +static void lts_aga_fm1_n1_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p4_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14636,6 +22392,7 @@ static void lts_aga_fm1_dpf0_p6_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -14652,13 +22409,22 @@ static void lts_aga_fm1_dpf0_p6_ihires_dhires(void) } last_bpl_pix = pix0; } - shiftbpl6(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl4(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -14675,15 +22441,35 @@ static void lts_aga_fm1_dpf0_p6_ihires_dhires(void) } last_bpl_pix = pix2; } - shiftbpl6(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + copybpl4(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl6_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -14719,7 +22505,11 @@ static void lts_aga_fm1_dpf0_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p6_ihires_dhires(void) +static void lts_aga_fm1_dpf0_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p4_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14731,6 +22521,7 @@ static void lts_aga_fm1_dpf1_p6_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -14747,16 +22538,25 @@ static void lts_aga_fm1_dpf1_p6_ihires_dhires(void) } last_bpl_pix = pix0; } - shiftbpl6(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl4e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl4o(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl6_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -14773,18 +22573,38 @@ static void lts_aga_fm1_dpf1_p6_ihires_dhires(void) } last_bpl_pix = pix2; } - shiftbpl6(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); + copybpl4e(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + copybpl4o(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl6_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -14820,7 +22640,59 @@ static void lts_aga_fm1_dpf1_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p6_ihires_dhires(void) +static void lts_aga_fm1_dpf1_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14832,6 +22704,7 @@ static void lts_aga_fm1_ehb0_p6_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -14839,13 +22712,7 @@ static void lts_aga_fm1_ehb0_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); - } + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } @@ -14854,8 +22721,17 @@ static void lts_aga_fm1_ehb0_p6_ihires_dhires(void) copybpl6(); } loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -14863,13 +22739,7 @@ static void lts_aga_fm1_ehb0_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); - } + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } @@ -14878,10 +22748,30 @@ static void lts_aga_fm1_ehb0_p6_ihires_dhires(void) copybpl6(); } loaded_pix = getbpl6_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -14917,7 +22807,11 @@ static void lts_aga_fm1_ehb0_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_ehb1_p6_ihires_dhires(void) +static void lts_aga_fm1_n0_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14929,6 +22823,7 @@ static void lts_aga_fm1_ehb1_p6_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -14936,13 +22831,7 @@ static void lts_aga_fm1_ehb1_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); - } + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } @@ -14954,8 +22843,17 @@ static void lts_aga_fm1_ehb1_p6_ihires_dhires(void) copybpl6o(); } loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -14963,13 +22861,7 @@ static void lts_aga_fm1_ehb1_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); - } + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } @@ -14981,10 +22873,30 @@ static void lts_aga_fm1_ehb1_p6_ihires_dhires(void) copybpl6o(); } loaded_pix = getbpl6_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -15020,7 +22932,11 @@ static void lts_aga_fm1_ehb1_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_ham0_p6_ihires_dhires(void) +static void lts_aga_fm1_n1_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15032,6 +22948,7 @@ static void lts_aga_fm1_ham0_p6_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -15039,7 +22956,12 @@ static void lts_aga_fm1_ham0_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } @@ -15048,8 +22970,17 @@ static void lts_aga_fm1_ham0_p6_ihires_dhires(void) copybpl6(); } loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -15057,7 +22988,12 @@ static void lts_aga_fm1_ham0_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } @@ -15066,10 +23002,30 @@ static void lts_aga_fm1_ham0_p6_ihires_dhires(void) copybpl6(); } loaded_pix = getbpl6_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -15105,7 +23061,11 @@ static void lts_aga_fm1_ham0_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_ham1_p6_ihires_dhires(void) +static void lts_aga_fm1_dpf0_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15117,6 +23077,7 @@ static void lts_aga_fm1_ham1_p6_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -15124,7 +23085,12 @@ static void lts_aga_fm1_ham1_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } @@ -15136,8 +23102,17 @@ static void lts_aga_fm1_ham1_p6_ihires_dhires(void) copybpl6o(); } loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -15145,7 +23120,12 @@ static void lts_aga_fm1_ham1_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } @@ -15157,10 +23137,30 @@ static void lts_aga_fm1_ham1_p6_ihires_dhires(void) copybpl6o(); } loaded_pix = getbpl6_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -15196,7 +23196,11 @@ static void lts_aga_fm1_ham1_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_kehb0_p6_ihires_dhires(void) +static void lts_aga_fm1_dpf1_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15208,6 +23212,7 @@ static void lts_aga_fm1_kehb0_p6_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -15216,7 +23221,12 @@ static void lts_aga_fm1_kehb0_p6_ihires_dhires(void) pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } } last_bpl_pix = pix0; } @@ -15225,8 +23235,17 @@ static void lts_aga_fm1_kehb0_p6_ihires_dhires(void) copybpl6(); } loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -15235,7 +23254,12 @@ static void lts_aga_fm1_kehb0_p6_ihires_dhires(void) pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } } last_bpl_pix = pix2; } @@ -15244,10 +23268,30 @@ static void lts_aga_fm1_kehb0_p6_ihires_dhires(void) copybpl6(); } loaded_pix = getbpl6_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -15283,7 +23327,11 @@ static void lts_aga_fm1_kehb0_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_kehb1_p6_ihires_dhires(void) +static void lts_aga_fm1_ehb0_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15295,6 +23343,7 @@ static void lts_aga_fm1_kehb1_p6_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -15303,7 +23352,12 @@ static void lts_aga_fm1_kehb1_p6_ihires_dhires(void) pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } } last_bpl_pix = pix0; } @@ -15315,8 +23369,17 @@ static void lts_aga_fm1_kehb1_p6_ihires_dhires(void) copybpl6o(); } loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -15325,7 +23388,12 @@ static void lts_aga_fm1_kehb1_p6_ihires_dhires(void) pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } } last_bpl_pix = pix2; } @@ -15337,10 +23405,30 @@ static void lts_aga_fm1_kehb1_p6_ihires_dhires(void) copybpl6o(); } loaded_pix = getbpl6_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -15376,7 +23464,11 @@ static void lts_aga_fm1_kehb1_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_n0_p8_ihires_dhires(void) +static void lts_aga_fm1_ehb1_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15388,6 +23480,7 @@ static void lts_aga_fm1_n0_p8_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -15395,17 +23488,26 @@ static void lts_aga_fm1_n0_p8_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl8(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl6(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -15413,19 +23515,39 @@ static void lts_aga_fm1_n0_p8_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } - shiftbpl8(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl6(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl8_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -15461,7 +23583,11 @@ static void lts_aga_fm1_n0_p8_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_n1_p8_ihires_dhires(void) +static void lts_aga_fm1_ham0_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15473,6 +23599,7 @@ static void lts_aga_fm1_n1_p8_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -15480,20 +23607,29 @@ static void lts_aga_fm1_n1_p8_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl8(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl6e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl6o(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -15501,22 +23637,42 @@ static void lts_aga_fm1_n1_p8_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } - shiftbpl8(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl6e(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl6o(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl8_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -15552,7 +23708,11 @@ static void lts_aga_fm1_n1_p8_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p8_ihires_dhires(void) +static void lts_aga_fm1_ham1_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15564,6 +23724,7 @@ static void lts_aga_fm1_dpf0_p8_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -15571,22 +23732,27 @@ static void lts_aga_fm1_dpf0_p8_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } - shiftbpl8(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl6(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -15594,24 +23760,40 @@ static void lts_aga_fm1_dpf0_p8_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; } last_bpl_pix = pix2; } - shiftbpl8(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl6(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl8_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -15647,7 +23829,11 @@ static void lts_aga_fm1_dpf0_p8_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p8_ihires_dhires(void) +static void lts_aga_fm1_kehb0_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15659,6 +23845,7 @@ static void lts_aga_fm1_dpf1_p8_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -15666,25 +23853,30 @@ static void lts_aga_fm1_dpf1_p8_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } - shiftbpl8(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl6e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl6o(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -15692,27 +23884,43 @@ static void lts_aga_fm1_dpf1_p8_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; } last_bpl_pix = pix2; } - shiftbpl8(); + shiftbpl6(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl6e(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl6o(); + } + loaded_pix = getbpl6_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl8_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -15748,15 +23956,11 @@ static void lts_aga_fm1_dpf1_p8_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p8_ihires_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p8_ihires_dhires(void) +static void lts_aga_fm1_kehb1_p6_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_ham0_p8_ihires_dhires(void) +static void lts_aga_fm1_n0_p8_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15768,6 +23972,7 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -15775,7 +23980,7 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } @@ -15784,8 +23989,17 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires(void) copybpl8(); } loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -15793,7 +24007,7 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } @@ -15802,10 +24016,30 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires(void) copybpl8(); } loaded_pix = getbpl8_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -15841,7 +24075,11 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_ham1_p8_ihires_dhires(void) +static void lts_aga_fm1_n0_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15853,6 +24091,7 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -15860,7 +24099,7 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } @@ -15872,8 +24111,17 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires(void) copybpl8o(); } loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -15881,7 +24129,7 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } @@ -15893,10 +24141,30 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires(void) copybpl8o(); } loaded_pix = getbpl8_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -15932,15 +24200,11 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm1_kehb0_p8_ihires_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p8_ihires_dhires(void) +static void lts_aga_fm1_n1_p8_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_n0_p2_ihires_dhires_spr(void) +static void lts_aga_fm1_dpf0_p8_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15960,15 +24224,20 @@ static void lts_aga_fm1_n0_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl8(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -15987,15 +24256,20 @@ static void lts_aga_fm1_n0_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl2(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl8(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -16055,7 +24329,11 @@ static void lts_aga_fm1_n0_p2_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_n1_p2_ihires_dhires_spr(void) +static void lts_aga_fm1_dpf0_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -16075,18 +24353,23 @@ static void lts_aga_fm1_n1_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl8e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl8o(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -16105,18 +24388,23 @@ static void lts_aga_fm1_n1_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl2(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl8e(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl8o(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -16176,7 +24464,27 @@ static void lts_aga_fm1_n1_p2_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p2_ihires_dhires_spr(void) +static void lts_aga_fm1_dpf1_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -16196,20 +24504,15 @@ static void lts_aga_fm1_dpf0_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl8(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -16228,20 +24531,15 @@ static void lts_aga_fm1_dpf0_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } - shiftbpl2(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl8(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -16301,7 +24599,11 @@ static void lts_aga_fm1_dpf0_p2_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p2_ihires_dhires_spr(void) +static void lts_aga_fm1_ham0_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -16321,23 +24623,18 @@ static void lts_aga_fm1_dpf1_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl8e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl8o(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -16356,23 +24653,18 @@ static void lts_aga_fm1_dpf1_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } - shiftbpl2(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl8e(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl8o(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl8_32(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -16432,146 +24724,27 @@ static void lts_aga_fm1_dpf1_p2_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p2_ihires_dhires_spr(void) +static void lts_aga_fm1_ham1_p8_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_ehb1_p2_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p2_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p2_ihires_dhires_spr(void) +static void lts_aga_fm1_kehb0_p8_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm1_kehb0_p2_ihires_dhires_spr(void) +static void lts_aga_fm1_kehb0_p8_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_kehb1_p2_ihires_dhires_spr(void) +static void lts_aga_fm1_kehb1_p8_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm1_n0_p4_ihires_dhires_spr(void) +static void lts_aga_fm1_kehb1_p8_ihires_dhires_spr_filtered(void) { - while (denise_cck < denise_total) { - do_denise_cck(denise_linecnt, denise_startpos, denise_cck); - if (lts_changed) return; - for (int h = 0; h < 2; h++) { - if (h) { - denise_hcounter_next = denise_hcounter_new; - } - int cnt = denise_hcounter << 2; - int cnt_next = denise_hcounter_next << 2; - if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); - uae_u8 pix0 = 0; - uae_u32 dpix_val0 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val0 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix0 = loaded_pixs[0]; - clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - } - last_bpl_pix = pix0; - } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); - } - loaded_pix = getbpl4_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } - } - loaded_pixs[0] = loaded_pix; - internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); - uae_u8 pix2 = 0; - uae_u32 dpix_val2 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val2 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix2 = loaded_pixs[2]; - clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; - } - last_bpl_pix = pix2; - } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); - } - loaded_pix = getbpl4_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } - } - loaded_pixs[2] = loaded_pix; - internal_pixel_cnt += 2; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } - dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } - dtbuf[h][2] = dpix_val2; - uae_u32 t0 = dtbuf[h ^ lol][0]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t0 = decode_denise_specials_debug(t0, cnt + 0); - } - #endif - *buf1++ = t0; - *buf2++ = t0; - uae_u32 t2 = dtbuf[h ^ lol][2]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t2 = decode_denise_specials_debug(t2, cnt + 2); - } - #endif - *buf1++ = t2; - *buf2++ = t2; - } - sprites_hidden = sprites_hidden2; - #ifdef DEBUGGER - *debug_dma_dhpos_odd = denise_hcounter; - #endif - denise_hcounter++; - denise_hcounter &= 511; - denise_hcounter_next++; - denise_hcounter_next &= 511; - } - denise_pixtotal++; - if (denise_pixtotal == 0) { - internal_pixel_start_cnt = internal_pixel_cnt; - } - denise_hcounter = denise_hcounter_new; - denise_cck++; - } + lts_null(); } -static void lts_aga_fm1_n1_p4_ihires_dhires_spr(void) +static void lts_aga_fm1_n0_p2_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -16583,7 +24756,6 @@ static void lts_aga_fm1_n1_p4_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -16595,25 +24767,14 @@ static void lts_aga_fm1_n1_p4_ihires_dhires_spr(void) } last_bpl_pix = pix0; } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); - } - loaded_pix = getbpl4_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); } + loaded_pix = getbpl2_32(); loaded_pixs[0] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -16625,38 +24786,16 @@ static void lts_aga_fm1_n1_p4_ihires_dhires_spr(void) } last_bpl_pix = pix2; } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); - } - loaded_pix = getbpl4_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); } + loaded_pix = getbpl2_32(); loaded_pixs[2] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -16692,7 +24831,7 @@ static void lts_aga_fm1_n1_p4_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p4_ihires_dhires_spr(void) +static void lts_aga_fm1_n0_p2_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -16704,7 +24843,6 @@ static void lts_aga_fm1_dpf0_p4_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -16712,31 +24850,34 @@ static void lts_aga_fm1_dpf0_p4_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); } - loaded_pix = getbpl4_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl2_32(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -16744,44 +24885,38 @@ static void lts_aga_fm1_dpf0_p4_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); } - loaded_pix = getbpl4_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pix = getbpl2_32(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -16817,7 +24952,7 @@ static void lts_aga_fm1_dpf0_p4_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p4_ihires_dhires_spr(void) +static void lts_aga_fm1_n1_p2_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -16829,7 +24964,6 @@ static void lts_aga_fm1_dpf1_p4_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -16837,34 +24971,21 @@ static void lts_aga_fm1_dpf1_p4_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - loaded_pix = getbpl4_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2_32(); loaded_pixs[0] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -16872,47 +24993,23 @@ static void lts_aga_fm1_dpf1_p4_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - loaded_pix = getbpl4_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2_32(); loaded_pixs[2] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -16948,31 +25045,7 @@ static void lts_aga_fm1_dpf1_p4_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p4_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p4_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p4_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p4_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p4_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p4_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p6_ihires_dhires_spr(void) +static void lts_aga_fm1_n1_p2_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -16984,7 +25057,6 @@ static void lts_aga_fm1_n0_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -16996,22 +25068,36 @@ static void lts_aga_fm1_n0_p6_ihires_dhires_spr(void) } last_bpl_pix = pix0; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2_32(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -17023,35 +25109,40 @@ static void lts_aga_fm1_n0_p6_ihires_dhires_spr(void) } last_bpl_pix = pix2; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - loaded_pix = getbpl6_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2_32(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -17087,7 +25178,7 @@ static void lts_aga_fm1_n0_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_n1_p6_ihires_dhires_spr(void) +static void lts_aga_fm1_dpf0_p2_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -17099,7 +25190,6 @@ static void lts_aga_fm1_n1_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -17107,29 +25197,23 @@ static void lts_aga_fm1_n1_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); - } - loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); } + loaded_pix = getbpl2_32(); loaded_pixs[0] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -17137,42 +25221,25 @@ static void lts_aga_fm1_n1_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); - } - loaded_pix = getbpl6_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); } + loaded_pix = getbpl2_32(); loaded_pixs[2] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -17208,7 +25275,7 @@ static void lts_aga_fm1_n1_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p6_ihires_dhires_spr(void) +static void lts_aga_fm1_dpf0_p2_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -17220,7 +25287,6 @@ static void lts_aga_fm1_dpf0_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -17237,22 +25303,35 @@ static void lts_aga_fm1_dpf0_p6_ihires_dhires_spr(void) } last_bpl_pix = pix0; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); } - loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl2_32(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -17269,35 +25348,39 @@ static void lts_aga_fm1_dpf0_p6_ihires_dhires_spr(void) } last_bpl_pix = pix2; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); } - loaded_pix = getbpl6_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pix = getbpl2_32(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -17333,7 +25416,7 @@ static void lts_aga_fm1_dpf0_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p6_ihires_dhires_spr(void) +static void lts_aga_fm1_dpf1_p2_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -17345,7 +25428,6 @@ static void lts_aga_fm1_dpf1_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -17357,30 +25439,22 @@ static void lts_aga_fm1_dpf1_p6_ihires_dhires_spr(void) if (dpf_lookup_no[pix0]) { val0 += dblpfofs[bpldualpf2of]; } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - } - last_bpl_pix = pix0; - } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); - } - loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } + last_bpl_pix = pix0; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2_32(); loaded_pixs[0] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -17397,38 +25471,19 @@ static void lts_aga_fm1_dpf1_p6_ihires_dhires_spr(void) } last_bpl_pix = pix2; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - loaded_pix = getbpl6_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2_32(); loaded_pixs[2] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -17464,7 +25519,7 @@ static void lts_aga_fm1_dpf1_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p6_ihires_dhires_spr(void) +static void lts_aga_fm1_dpf1_p2_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -17476,7 +25531,6 @@ static void lts_aga_fm1_ehb0_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -17484,32 +25538,50 @@ static void lts_aga_fm1_ehb0_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2_32(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -17517,45 +25589,54 @@ static void lts_aga_fm1_ehb0_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - loaded_pix = getbpl6_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } + loaded_pix = getbpl2_32(); loaded_pixs[2] = loaded_pix; - internal_pixel_cnt += 2; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; } + last_bpl_pix = pix3; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[3] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -17591,7 +25672,55 @@ static void lts_aga_fm1_ehb0_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_ehb1_p6_ihires_dhires_spr(void) +static void lts_aga_fm1_ehb0_p2_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p2_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p2_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p2_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p2_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p2_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p2_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p2_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p2_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p2_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p2_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p2_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -17603,7 +25732,6 @@ static void lts_aga_fm1_ehb1_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -17611,35 +25739,18 @@ static void lts_aga_fm1_ehb1_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); - } + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); - } - loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -17647,48 +25758,20 @@ static void lts_aga_fm1_ehb1_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); - } + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); - } - loaded_pix = getbpl6_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } + loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -17724,7 +25807,7 @@ static void lts_aga_fm1_ehb1_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_ham0_p6_ihires_dhires_spr(void) +static void lts_aga_fm1_n0_p4_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -17736,7 +25819,6 @@ static void lts_aga_fm1_ham0_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -17744,26 +25826,34 @@ static void lts_aga_fm1_ham0_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } - loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl4_32(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -17771,39 +25861,38 @@ static void lts_aga_fm1_ham0_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } - loaded_pix = getbpl6_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pix = getbpl4_32(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -17839,7 +25928,7 @@ static void lts_aga_fm1_ham0_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_ham1_p6_ihires_dhires_spr(void) +static void lts_aga_fm1_n1_p4_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -17851,7 +25940,6 @@ static void lts_aga_fm1_ham1_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -17859,29 +25947,21 @@ static void lts_aga_fm1_ham1_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -17889,42 +25969,23 @@ static void lts_aga_fm1_ham1_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - loaded_pix = getbpl6_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -17960,7 +26021,7 @@ static void lts_aga_fm1_ham1_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_kehb0_p6_ihires_dhires_spr(void) +static void lts_aga_fm1_n1_p4_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -17972,7 +26033,6 @@ static void lts_aga_fm1_kehb0_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -17980,27 +26040,40 @@ static void lts_aga_fm1_kehb0_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -18008,40 +26081,44 @@ static void lts_aga_fm1_kehb0_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - loaded_pix = getbpl6_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; - internal_pixel_cnt += 2; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; } + last_bpl_pix = pix3; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[3] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -18077,7 +26154,7 @@ static void lts_aga_fm1_kehb0_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_kehb1_p6_ihires_dhires_spr(void) +static void lts_aga_fm1_dpf0_p4_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -18089,7 +26166,6 @@ static void lts_aga_fm1_kehb1_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -18097,30 +26173,23 @@ static void lts_aga_fm1_kehb1_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); - } - loaded_pix = getbpl6_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -18128,43 +26197,25 @@ static void lts_aga_fm1_kehb1_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl6(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o(); - } - loaded_pix = getbpl6_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } + loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -18200,7 +26251,7 @@ static void lts_aga_fm1_kehb1_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_n0_p8_ihires_dhires_spr(void) +static void lts_aga_fm1_dpf0_p4_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -18212,7 +26263,6 @@ static void lts_aga_fm1_n0_p8_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -18220,26 +26270,44 @@ static void lts_aga_fm1_n0_p8_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } - loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl4_32(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -18247,39 +26315,48 @@ static void lts_aga_fm1_n0_p8_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } - loaded_pix = getbpl8_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pix = getbpl4_32(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -18315,7 +26392,7 @@ static void lts_aga_fm1_n0_p8_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_n1_p8_ihires_dhires_spr(void) +static void lts_aga_fm1_dpf1_p4_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -18327,7 +26404,6 @@ static void lts_aga_fm1_n1_p8_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -18335,29 +26411,26 @@ static void lts_aga_fm1_n1_p8_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -18365,42 +26438,28 @@ static void lts_aga_fm1_n1_p8_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - loaded_pix = getbpl8_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -18436,7 +26495,7 @@ static void lts_aga_fm1_n1_p8_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p8_ihires_dhires_spr(void) +static void lts_aga_fm1_dpf1_p4_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -18448,7 +26507,6 @@ static void lts_aga_fm1_dpf0_p8_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -18465,22 +26523,41 @@ static void lts_aga_fm1_dpf0_p8_ihires_dhires_spr(void) } last_bpl_pix = pix0; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -18497,35 +26574,45 @@ static void lts_aga_fm1_dpf0_p8_ihires_dhires_spr(void) } last_bpl_pix = pix2; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - loaded_pix = getbpl8_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; - internal_pixel_cnt += 2; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; } + last_bpl_pix = pix3; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[3] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -18561,7 +26648,215 @@ static void lts_aga_fm1_dpf0_p8_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p8_ihires_dhires_spr(void) +static void lts_aga_fm1_ehb0_p4_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p6_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p6_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p2_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -18581,23 +26876,15 @@ static void lts_aga_fm1_dpf1_p8_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); } - loaded_pix = getbpl8_32(); + loaded_pix = getbpl2_32(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -18607,6 +26894,7 @@ static void lts_aga_fm1_dpf1_p8_ihires_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -18616,23 +26904,15 @@ static void lts_aga_fm1_dpf1_p8_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); } - loaded_pix = getbpl8_32(); + loaded_pix = getbpl2_32(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -18642,6 +26922,7 @@ static void lts_aga_fm1_dpf1_p8_ihires_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -18692,15 +26973,7 @@ static void lts_aga_fm1_dpf1_p8_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p8_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p8_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p8_ihires_dhires_spr(void) +static void lts_aga_fm1_n0_p2_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -18720,15 +26993,15 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); } - loaded_pix = getbpl8_32(); + loaded_pix = getbpl2_32(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -18738,6 +27011,23 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -18747,15 +27037,15 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); } - loaded_pix = getbpl8_32(); + loaded_pix = getbpl2_32(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -18765,21 +27055,42 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -18815,7 +27126,7 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_ham1_p8_ihires_dhires_spr(void) +static void lts_aga_fm1_n1_p2_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -18835,18 +27146,18 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } - loaded_pix = getbpl8_32(); + loaded_pix = getbpl2_32(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -18856,6 +27167,7 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -18865,18 +27177,18 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } - loaded_pix = getbpl8_32(); + loaded_pix = getbpl2_32(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -18886,6 +27198,7 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -18936,15 +27249,7 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_kehb0_p8_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p8_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p2_ishres_dhires(void) +static void lts_aga_fm1_n1_p2_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -18956,6 +27261,7 @@ static void lts_aga_fm1_n0_p2_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -18969,102 +27275,43 @@ static void lts_aga_fm1_n0_p2_ishres_dhires(void) } shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2(); - } - loaded_pix = getbpl2_32(); - loaded_pixs[0] = loaded_pix; - shiftbpl2(); - internal_pixel_cnt += 2; - uae_u8 pix2 = 0; - uae_u32 dpix_val2 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val2 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix2 = loaded_pixs[2]; - clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; - } - last_bpl_pix = pix2; + copybpl2e(); } - shiftbpl2(); - if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2(); + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); } loaded_pix = getbpl2_32(); - loaded_pixs[2] = loaded_pix; - shiftbpl2(); - internal_pixel_cnt += 2; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - dtbuf[h][0] = dpix_val0; - dtbuf[h][2] = dpix_val2; - uae_u32 t0 = dtbuf[h ^ lol][0]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t0 = decode_denise_specials_debug(t0, cnt + 0); - } - #endif - *buf1++ = t0; - *buf2++ = t0; - uae_u32 t2 = dtbuf[h ^ lol][2]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t2 = decode_denise_specials_debug(t2, cnt + 2); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; } - #endif - *buf1++ = t2; - *buf2++ = t2; - } - sprites_hidden = sprites_hidden2; - #ifdef DEBUGGER - *debug_dma_dhpos_odd = denise_hcounter; - #endif - denise_hcounter++; - denise_hcounter &= 511; - denise_hcounter_next++; - denise_hcounter_next &= 511; - } - denise_pixtotal++; - if (denise_pixtotal == 0) { - internal_pixel_start_cnt = internal_pixel_cnt; - } - denise_hcounter = denise_hcounter_new; - denise_cck++; - } -} -static void lts_aga_fm1_n1_p2_ishres_dhires(void) -{ - while (denise_cck < denise_total) { - do_denise_cck(denise_linecnt, denise_startpos, denise_cck); - if (lts_changed) return; - for (int h = 0; h < 2; h++) { - if (h) { - denise_hcounter_next = denise_hcounter_new; } - int cnt = denise_hcounter << 2; - int cnt_next = denise_hcounter_next << 2; - if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - uae_u8 pix0 = 0; - uae_u32 dpix_val0 = BLANK_COLOR; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; if (!denise_blank_active) { - dpix_val0 = bordercolor; + dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = loaded_pixs[0]; - clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; } - last_bpl_pix = pix0; + last_bpl_pix = pix1; } shiftbpl2(); - if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { copybpl2e(); } - if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { copybpl2o(); } loaded_pix = getbpl2_32(); - loaded_pixs[0] = loaded_pix; - shiftbpl2(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -19084,211 +27331,54 @@ static void lts_aga_fm1_n1_p2_ishres_dhires(void) copybpl2o(); } loaded_pix = getbpl2_32(); - loaded_pixs[2] = loaded_pix; - shiftbpl2(); - internal_pixel_cnt += 2; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - dtbuf[h][0] = dpix_val0; - dtbuf[h][2] = dpix_val2; - uae_u32 t0 = dtbuf[h ^ lol][0]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t0 = decode_denise_specials_debug(t0, cnt + 0); - } - #endif - *buf1++ = t0; - *buf2++ = t0; - uae_u32 t2 = dtbuf[h ^ lol][2]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t2 = decode_denise_specials_debug(t2, cnt + 2); - } - #endif - *buf1++ = t2; - *buf2++ = t2; - } - sprites_hidden = sprites_hidden2; - #ifdef DEBUGGER - *debug_dma_dhpos_odd = denise_hcounter; - #endif - denise_hcounter++; - denise_hcounter &= 511; - denise_hcounter_next++; - denise_hcounter_next &= 511; - } - denise_pixtotal++; - if (denise_pixtotal == 0) { - internal_pixel_start_cnt = internal_pixel_cnt; - } - denise_hcounter = denise_hcounter_new; - denise_cck++; - } -} -static void lts_aga_fm1_dpf0_p2_ishres_dhires(void) -{ - while (denise_cck < denise_total) { - do_denise_cck(denise_linecnt, denise_startpos, denise_cck); - if (lts_changed) return; - for (int h = 0; h < 2; h++) { - if (h) { - denise_hcounter_next = denise_hcounter_new; - } - int cnt = denise_hcounter << 2; - int cnt_next = denise_hcounter_next << 2; - if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - uae_u8 pix0 = 0; - uae_u32 dpix_val0 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val0 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix0 = loaded_pixs[0]; - clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - } - last_bpl_pix = pix0; - } - shiftbpl2(); - if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2(); - } - loaded_pix = getbpl2_32(); - loaded_pixs[0] = loaded_pix; - shiftbpl2(); - internal_pixel_cnt += 2; - uae_u8 pix2 = 0; - uae_u32 dpix_val2 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val2 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix2 = loaded_pixs[2]; - clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; } - last_bpl_pix = pix2; - } - shiftbpl2(); - if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2(); } - loaded_pix = getbpl2_32(); loaded_pixs[2] = loaded_pix; - shiftbpl2(); - internal_pixel_cnt += 2; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - dtbuf[h][0] = dpix_val0; - dtbuf[h][2] = dpix_val2; - uae_u32 t0 = dtbuf[h ^ lol][0]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t0 = decode_denise_specials_debug(t0, cnt + 0); - } - #endif - *buf1++ = t0; - *buf2++ = t0; - uae_u32 t2 = dtbuf[h ^ lol][2]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t2 = decode_denise_specials_debug(t2, cnt + 2); - } - #endif - *buf1++ = t2; - *buf2++ = t2; - } - sprites_hidden = sprites_hidden2; - #ifdef DEBUGGER - *debug_dma_dhpos_odd = denise_hcounter; - #endif - denise_hcounter++; - denise_hcounter &= 511; - denise_hcounter_next++; - denise_hcounter_next &= 511; - } - denise_pixtotal++; - if (denise_pixtotal == 0) { - internal_pixel_start_cnt = internal_pixel_cnt; - } - denise_hcounter = denise_hcounter_new; - denise_cck++; - } -} -static void lts_aga_fm1_dpf1_p2_ishres_dhires(void) -{ - while (denise_cck < denise_total) { - do_denise_cck(denise_linecnt, denise_startpos, denise_cck); - if (lts_changed) return; - for (int h = 0; h < 2; h++) { - if (h) { - denise_hcounter_next = denise_hcounter_new; - } - int cnt = denise_hcounter << 2; - int cnt_next = denise_hcounter_next << 2; - if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - uae_u8 pix0 = 0; - uae_u32 dpix_val0 = BLANK_COLOR; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; if (!denise_blank_active) { - dpix_val0 = bordercolor; + dpix_val3 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = loaded_pixs[0]; - clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; } - last_bpl_pix = pix0; + last_bpl_pix = pix3; } shiftbpl2(); - if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { copybpl2e(); } - if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[1]) { copybpl2o(); } loaded_pix = getbpl2_32(); - loaded_pixs[0] = loaded_pix; - shiftbpl2(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; - uae_u8 pix2 = 0; - uae_u32 dpix_val2 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val2 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix2 = loaded_pixs[2]; - clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; } - last_bpl_pix = pix2; - } - shiftbpl2(); - if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { - copybpl2o(); - } - loaded_pix = getbpl2_32(); - loaded_pixs[2] = loaded_pix; - shiftbpl2(); - internal_pixel_cnt += 2; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -19319,36 +27409,12 @@ static void lts_aga_fm1_dpf1_p2_ishres_dhires(void) denise_pixtotal++; if (denise_pixtotal == 0) { internal_pixel_start_cnt = internal_pixel_cnt; - } - denise_hcounter = denise_hcounter_new; - denise_cck++; - } -} -static void lts_aga_fm1_ehb0_p2_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p2_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p2_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p2_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p2_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p2_ishres_dhires(void) -{ - lts_null(); + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm1_n0_p4_ishres_dhires(void) +static void lts_aga_fm1_dpf0_p2_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -19360,6 +27426,7 @@ static void lts_aga_fm1_n0_p4_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -19367,18 +27434,32 @@ static void lts_aga_fm1_n0_p4_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl2(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -19386,20 +27467,45 @@ static void lts_aga_fm1_n0_p4_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl2(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -19435,7 +27541,7 @@ static void lts_aga_fm1_n0_p4_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm1_n1_p4_ishres_dhires(void) +static void lts_aga_fm1_dpf0_p2_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -19447,6 +27553,7 @@ static void lts_aga_fm1_n1_p4_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -19454,21 +27561,53 @@ static void lts_aga_fm1_n1_p4_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl2(); } - if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + loaded_pix = getbpl2_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; - shiftbpl4(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -19476,23 +27615,70 @@ static void lts_aga_fm1_n1_p4_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl2(); } - if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + loaded_pix = getbpl2_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; - shiftbpl4(); + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + } + last_bpl_pix = pix3; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -19528,7 +27714,7 @@ static void lts_aga_fm1_n1_p4_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p4_ishres_dhires(void) +static void lts_aga_fm1_dpf1_p2_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -19540,6 +27726,7 @@ static void lts_aga_fm1_dpf0_p4_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -19556,14 +27743,26 @@ static void lts_aga_fm1_dpf0_p4_ishres_dhires(void) } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -19580,16 +27779,39 @@ static void lts_aga_fm1_dpf0_p4_ishres_dhires(void) } last_bpl_pix = pix2; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -19625,7 +27847,7 @@ static void lts_aga_fm1_dpf0_p4_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p4_ishres_dhires(void) +static void lts_aga_fm1_dpf1_p2_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -19637,6 +27859,7 @@ static void lts_aga_fm1_dpf1_p4_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -19653,17 +27876,50 @@ static void lts_aga_fm1_dpf1_p4_ishres_dhires(void) } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl2e(); } if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl2o(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; - shiftbpl4(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -19680,19 +27936,67 @@ static void lts_aga_fm1_dpf1_p4_ishres_dhires(void) } last_bpl_pix = pix2; } - shiftbpl4(); + shiftbpl2(); if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl2e(); } if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl2o(); + } + loaded_pix = getbpl2_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; - shiftbpl4(); + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + } + last_bpl_pix = pix3; + } + shiftbpl2(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[1]) { + copybpl2o(); + } + loaded_pix = getbpl2_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -19728,111 +28032,172 @@ static void lts_aga_fm1_dpf1_p4_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p4_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p4_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p4_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p4_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p4_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p4_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p6_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_n1_p6_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf0_p6_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf1_p6_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb0_p6_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p6_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p6_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p6_ishres_dhires(void) +static void lts_aga_fm1_ehb0_p2_ishres_dhires_spr(void) { lts_null(); } -static void lts_aga_fm1_kehb0_p6_ishres_dhires(void) +static void lts_aga_fm1_ehb0_p2_ishres_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_kehb1_p6_ishres_dhires(void) +static void lts_aga_fm1_ehb1_p2_ishres_dhires_spr(void) { lts_null(); } -static void lts_aga_fm1_n0_p8_ishres_dhires(void) +static void lts_aga_fm1_ehb1_p2_ishres_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_n1_p8_ishres_dhires(void) +static void lts_aga_fm1_ham0_p2_ishres_dhires_spr(void) { lts_null(); } -static void lts_aga_fm1_dpf0_p8_ishres_dhires(void) +static void lts_aga_fm1_ham0_p2_ishres_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_dpf1_p8_ishres_dhires(void) +static void lts_aga_fm1_ham1_p2_ishres_dhires_spr(void) { lts_null(); } -static void lts_aga_fm1_ehb0_p8_ishres_dhires(void) +static void lts_aga_fm1_ham1_p2_ishres_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_ehb1_p8_ishres_dhires(void) +static void lts_aga_fm1_kehb0_p2_ishres_dhires_spr(void) { lts_null(); } -static void lts_aga_fm1_ham0_p8_ishres_dhires(void) +static void lts_aga_fm1_kehb0_p2_ishres_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_ham1_p8_ishres_dhires(void) +static void lts_aga_fm1_kehb1_p2_ishres_dhires_spr(void) { lts_null(); } -static void lts_aga_fm1_kehb0_p8_ishres_dhires(void) +static void lts_aga_fm1_kehb1_p2_ishres_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm1_kehb1_p8_ishres_dhires(void) +static void lts_aga_fm1_n0_p4_ishres_dhires_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4(); + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm1_n0_p2_ishres_dhires_spr(void) +static void lts_aga_fm1_n0_p4_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -19856,11 +28221,11 @@ static void lts_aga_fm1_n0_p2_ishres_dhires_spr(void) } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl4(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl4_32(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -19870,7 +28235,23 @@ static void lts_aga_fm1_n0_p2_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl2(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -19884,11 +28265,11 @@ static void lts_aga_fm1_n0_p2_ishres_dhires_spr(void) } last_bpl_pix = pix2; } - shiftbpl2(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl4(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl4_32(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -19898,22 +28279,42 @@ static void lts_aga_fm1_n0_p2_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl2(); + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -19949,7 +28350,7 @@ static void lts_aga_fm1_n0_p2_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_n1_p2_ishres_dhires_spr(void) +static void lts_aga_fm1_n1_p4_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -19973,14 +28374,14 @@ static void lts_aga_fm1_n1_p2_ishres_dhires_spr(void) } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl4e(); } if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl4o(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl4_32(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -19990,7 +28391,7 @@ static void lts_aga_fm1_n1_p2_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl2(); + shiftbpl4(); internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -20004,14 +28405,14 @@ static void lts_aga_fm1_n1_p2_ishres_dhires_spr(void) } last_bpl_pix = pix2; } - shiftbpl2(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2e(); + copybpl4e(); } if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl4o(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl4_32(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -20021,7 +28422,7 @@ static void lts_aga_fm1_n1_p2_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl2(); + shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -20072,7 +28473,7 @@ static void lts_aga_fm1_n1_p2_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p2_ishres_dhires_spr(void) +static void lts_aga_fm1_n1_p4_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -20092,20 +28493,18 @@ static void lts_aga_fm1_dpf0_p2_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl4e(); } - loaded_pix = getbpl2_32(); + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -20115,7 +28514,26 @@ static void lts_aga_fm1_dpf0_p2_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl2(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -20125,20 +28543,18 @@ static void lts_aga_fm1_dpf0_p2_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl2(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2(); + copybpl4e(); } - loaded_pix = getbpl2_32(); + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -20148,22 +28564,45 @@ static void lts_aga_fm1_dpf0_p2_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl2(); + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -20199,7 +28638,7 @@ static void lts_aga_fm1_dpf0_p2_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p2_ishres_dhires_spr(void) +static void lts_aga_fm1_dpf0_p4_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -20228,14 +28667,11 @@ static void lts_aga_fm1_dpf1_p2_ishres_dhires_spr(void) } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl4(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl4_32(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -20245,7 +28681,7 @@ static void lts_aga_fm1_dpf1_p2_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl2(); + shiftbpl4(); internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -20264,14 +28700,11 @@ static void lts_aga_fm1_dpf1_p2_ishres_dhires_spr(void) } last_bpl_pix = pix2; } - shiftbpl2(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl2e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { - copybpl2o(); + copybpl4(); } - loaded_pix = getbpl2_32(); + loaded_pix = getbpl4_32(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -20281,7 +28714,7 @@ static void lts_aga_fm1_dpf1_p2_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl2(); + shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -20332,31 +28765,7 @@ static void lts_aga_fm1_dpf1_p2_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p2_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p2_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p2_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p2_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p2_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p2_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p4_ishres_dhires_spr(void) +static void lts_aga_fm1_dpf0_p4_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -20376,7 +28785,12 @@ static void lts_aga_fm1_n0_p4_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } @@ -20394,7 +28808,28 @@ static void lts_aga_fm1_n0_p4_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -20404,7 +28839,12 @@ static void lts_aga_fm1_n0_p4_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } @@ -20422,22 +28862,47 @@ static void lts_aga_fm1_n0_p4_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + } + last_bpl_pix = pix3; + } shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -20473,7 +28938,7 @@ static void lts_aga_fm1_n0_p4_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_n1_p4_ishres_dhires_spr(void) +static void lts_aga_fm1_dpf1_p4_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -20493,7 +28958,12 @@ static void lts_aga_fm1_n1_p4_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } @@ -20524,7 +28994,12 @@ static void lts_aga_fm1_n1_p4_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } @@ -20596,7 +29071,7 @@ static void lts_aga_fm1_n1_p4_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p4_ishres_dhires_spr(void) +static void lts_aga_fm1_dpf1_p4_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -20627,7 +29102,10 @@ static void lts_aga_fm1_dpf0_p4_ishres_dhires_spr(void) } shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } loaded_pix = getbpl4_32(); uae_u32 sv0 = 0; @@ -20639,137 +29117,31 @@ static void lts_aga_fm1_dpf0_p4_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl4(); - internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); - uae_u8 pix2 = 0; - uae_u32 dpix_val2 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val2 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix2 = loaded_pixs[2]; - clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; - } - last_bpl_pix = pix2; - } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); - } - loaded_pix = getbpl4_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } - } - loaded_pixs[2] = loaded_pix; - shiftbpl4(); - internal_pixel_cnt += 2; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } - dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } - dtbuf[h][2] = dpix_val2; - uae_u32 t0 = dtbuf[h ^ lol][0]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t0 = decode_denise_specials_debug(t0, cnt + 0); - } - #endif - *buf1++ = t0; - *buf2++ = t0; - uae_u32 t2 = dtbuf[h ^ lol][2]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t2 = decode_denise_specials_debug(t2, cnt + 2); - } - #endif - *buf1++ = t2; - *buf2++ = t2; - } - sprites_hidden = sprites_hidden2; - #ifdef DEBUGGER - *debug_dma_dhpos_odd = denise_hcounter; - #endif - denise_hcounter++; - denise_hcounter &= 511; - denise_hcounter_next++; - denise_hcounter_next &= 511; - } - denise_pixtotal++; - if (denise_pixtotal == 0) { - internal_pixel_start_cnt = internal_pixel_cnt; - } - denise_hcounter = denise_hcounter_new; - denise_cck++; - } -} -static void lts_aga_fm1_dpf1_p4_ishres_dhires_spr(void) -{ - while (denise_cck < denise_total) { - do_denise_cck(denise_linecnt, denise_startpos, denise_cck); - if (lts_changed) return; - for (int h = 0; h < 2; h++) { - if (h) { - denise_hcounter_next = denise_hcounter_new; - } - int cnt = denise_hcounter << 2; - int cnt_next = denise_hcounter_next << 2; - if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); - uae_u8 pix0 = 0; - uae_u32 dpix_val0 = BLANK_COLOR; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; if (!denise_blank_active) { - dpix_val0 = bordercolor; + dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = loaded_pixs[0]; - clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } - last_bpl_pix = pix0; + last_bpl_pix = pix1; } shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { copybpl4e(); } - if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { copybpl4o(); } loaded_pix = getbpl4_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } - } - loaded_pixs[0] = loaded_pix; - shiftbpl4(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -20805,22 +29177,50 @@ static void lts_aga_fm1_dpf1_p4_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + } + last_bpl_pix = pix3; + } shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -20860,106 +29260,210 @@ static void lts_aga_fm1_ehb0_p4_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p4_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p4_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_ham0_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p4_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_ham1_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p4_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p4_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_n0_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_n1_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_dpf0_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_dpf1_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_ham0_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_ham1_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p6_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p6_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_n0_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_n1_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_dpf0_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_dpf1_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_ham0_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_ham1_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p2_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -21123,6 +29627,10 @@ static void lts_aga_fm1_n0_p2_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_n0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p2_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -21330,6 +29838,10 @@ static void lts_aga_fm1_n1_p2_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_n1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p2_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -21513,6 +30025,10 @@ static void lts_aga_fm1_dpf0_p2_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p2_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -21740,30 +30256,58 @@ static void lts_aga_fm1_dpf1_p2_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p2_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p2_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p2_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm1_ham0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p2_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm1_ham1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p2_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p2_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p4_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -21927,6 +30471,10 @@ static void lts_aga_fm1_n0_p4_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_n0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p4_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -22134,6 +30682,10 @@ static void lts_aga_fm1_n1_p4_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_n1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p4_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -22317,6 +30869,10 @@ static void lts_aga_fm1_dpf0_p4_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p4_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -22544,30 +31100,58 @@ static void lts_aga_fm1_dpf1_p4_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p4_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p4_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p4_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm1_ham0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p4_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm1_ham1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p4_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p4_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -22731,6 +31315,10 @@ static void lts_aga_fm1_n0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_n0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -22938,6 +31526,10 @@ static void lts_aga_fm1_n1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_n1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -23121,6 +31713,10 @@ static void lts_aga_fm1_dpf0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -23348,6 +31944,10 @@ static void lts_aga_fm1_dpf1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -23535,6 +32135,10 @@ static void lts_aga_fm1_ehb0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_ehb0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -23766,6 +32370,10 @@ static void lts_aga_fm1_ehb1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_ehb1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -23929,6 +32537,10 @@ static void lts_aga_fm1_ham0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_ham0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -24136,6 +32748,10 @@ static void lts_aga_fm1_ham1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_ham1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -24303,6 +32919,10 @@ static void lts_aga_fm1_kehb0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_kehb0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -24514,6 +33134,10 @@ static void lts_aga_fm1_kehb1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_kehb1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p8_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -24677,7 +33301,222 @@ static void lts_aga_fm1_n0_p8_ilores_dshres(void) denise_cck++; } } -static void lts_aga_fm1_n1_p8_ilores_dshres(void) +static void lts_aga_fm1_n0_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ilores_dshres(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 1; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e(); + loaded_pix = getbpl8_32(); + } + bplshiftcnt[1] += 1; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 1; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + bplshiftcnt[0] += 1; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e(); + loaded_pix = getbpl8_32(); + } + bplshiftcnt[1] += 1; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 1; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 1; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e(); + loaded_pix = getbpl8_32(); + } + bplshiftcnt[1] += 1; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 1; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } + bplshiftcnt[0] += 1; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e(); + loaded_pix = getbpl8_32(); + } + bplshiftcnt[1] += 1; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 3) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[1] && ((cnt | 3) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[3] = loaded_pix; + internal_pixel_cnt += 1; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][1] = dpix_val1; + dtbuf[h][2] = dpix_val2; + dtbuf[h][3] = dpix_val3; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t1 = dtbuf[h ^ lol][1]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t1 = decode_denise_specials_debug(t1, cnt + 1); + } + #endif + *buf1++ = t1; + *buf2++ = t1; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + uae_u32 t3 = dtbuf[h ^ lol][3]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t3 = decode_denise_specials_debug(t3, cnt + 3); + } + #endif + *buf1++ = t3; + *buf2++ = t3; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n1_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p8_ilores_dshres(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -24696,32 +33535,26 @@ static void lts_aga_fm1_n1_p8_ilores_dshres(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 1; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); + shiftbpl8(); loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl8(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); - } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 1; uae_u8 pix1 = 0; @@ -24731,32 +33564,26 @@ static void lts_aga_fm1_n1_p8_ilores_dshres(void) if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; clxdat |= bplcoltable[pix1]; - dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 1; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); + shiftbpl8(); loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl8(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } - if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); - } loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 1; uae_u8 pix2 = 0; @@ -24766,32 +33593,26 @@ static void lts_aga_fm1_n1_p8_ilores_dshres(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 1; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); + shiftbpl8(); loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl8(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); - } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 1; uae_u8 pix3 = 0; @@ -24801,32 +33622,26 @@ static void lts_aga_fm1_n1_p8_ilores_dshres(void) if (denise_hdiw && bpl1dat_trigger) { pix3 = loaded_pixs[3]; clxdat |= bplcoltable[pix3]; - dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; } last_bpl_pix = pix3; } bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 1; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); + shiftbpl8(); loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 3) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl8(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } - if (bpldat_copy[1] && ((cnt | 3) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); - } loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 1; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -24884,7 +33699,11 @@ static void lts_aga_fm1_n1_p8_ilores_dshres(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p8_ilores_dshres(void) +static void lts_aga_fm1_dpf0_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ilores_dshres(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -24915,14 +33734,25 @@ static void lts_aga_fm1_dpf0_p8_ilores_dshres(void) bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8(); + shiftbpl8e(); + loaded_pix = getbpl8_32(); + } + bplshiftcnt[1] += 1; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o(); loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl8e(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_32(); + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 1; uae_u8 pix1 = 0; @@ -24944,14 +33774,25 @@ static void lts_aga_fm1_dpf0_p8_ilores_dshres(void) bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8(); + shiftbpl8e(); + loaded_pix = getbpl8_32(); + } + bplshiftcnt[1] += 1; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o(); loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl8e(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_32(); + } loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 1; uae_u8 pix2 = 0; @@ -24973,14 +33814,25 @@ static void lts_aga_fm1_dpf0_p8_ilores_dshres(void) bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8(); + shiftbpl8e(); + loaded_pix = getbpl8_32(); + } + bplshiftcnt[1] += 1; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o(); loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl8e(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_32(); + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 1; uae_u8 pix3 = 0; @@ -25002,14 +33854,25 @@ static void lts_aga_fm1_dpf0_p8_ilores_dshres(void) bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8(); + shiftbpl8e(); + loaded_pix = getbpl8_32(); + } + bplshiftcnt[1] += 1; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o(); loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 3) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl8e(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } + if (bpldat_copy[1] && ((cnt | 3) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_32(); + } loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 1; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -25067,7 +33930,27 @@ static void lts_aga_fm1_dpf0_p8_ilores_dshres(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p8_ilores_dshres(void) +static void lts_aga_fm1_dpf1_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ilores_dshres(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ilores_dshres(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ilores_dshres(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -25086,37 +33969,21 @@ static void lts_aga_fm1_dpf1_p8_ilores_dshres(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 1; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); + shiftbpl8(); loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl8(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); - } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 1; uae_u8 pix1 = 0; @@ -25126,37 +33993,21 @@ static void lts_aga_fm1_dpf1_p8_ilores_dshres(void) if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; clxdat |= bplcoltable[pix1]; - uae_u8 val1 = dpf_lookup[pix1]; - if (dpf_lookup_no[pix1]) { - val1 += dblpfofs[bpldualpf2of]; - } - val1 ^= bplcon4_denise_xor_val; - dpix_val1 = denise_colors.acolors[val1]; + dpix_val1 = decode_ham_pixel_aga(pix1); } last_bpl_pix = pix1; } bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 1; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); + shiftbpl8(); loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl8(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } - if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); - } loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 1; uae_u8 pix2 = 0; @@ -25166,37 +34017,21 @@ static void lts_aga_fm1_dpf1_p8_ilores_dshres(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 1; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); + shiftbpl8(); loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl8(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); - } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 1; uae_u8 pix3 = 0; @@ -25206,37 +34041,21 @@ static void lts_aga_fm1_dpf1_p8_ilores_dshres(void) if (denise_hdiw && bpl1dat_trigger) { pix3 = loaded_pixs[3]; clxdat |= bplcoltable[pix3]; - uae_u8 val3 = dpf_lookup[pix3]; - if (dpf_lookup_no[pix3]) { - val3 += dblpfofs[bpldualpf2of]; - } - val3 ^= bplcon4_denise_xor_val; - dpix_val3 = denise_colors.acolors[val3]; + dpix_val3 = decode_ham_pixel_aga(pix3); } last_bpl_pix = pix3; } bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 1; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); + shiftbpl8(); loaded_pix = getbpl8_32(); } if (bpldat_copy[0] && ((cnt | 3) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl8(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } - if (bpldat_copy[1] && ((cnt | 3) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); - } loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 1; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -25294,177 +34113,10 @@ static void lts_aga_fm1_dpf1_p8_ilores_dshres(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p8_ilores_dshres(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p8_ilores_dshres(void) +static void lts_aga_fm1_ham0_p8_ilores_dshres_filtered(void) { lts_null(); } -static void lts_aga_fm1_ham0_p8_ilores_dshres(void) -{ - while (denise_cck < denise_total) { - do_denise_cck(denise_linecnt, denise_startpos, denise_cck); - if (lts_changed) return; - for (int h = 0; h < 2; h++) { - if (h) { - denise_hcounter_next = denise_hcounter_new; - } - int cnt = denise_hcounter << 2; - int cnt_next = denise_hcounter_next << 2; - if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - uae_u8 pix0 = 0; - uae_u32 dpix_val0 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val0 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix0 = loaded_pixs[0]; - clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); - } - last_bpl_pix = pix0; - } - bplshiftcnt[0] += 1; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - loaded_pixs[0] = loaded_pix; - internal_pixel_cnt += 1; - uae_u8 pix1 = 0; - uae_u32 dpix_val1 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val1 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix1 = loaded_pixs[1]; - clxdat |= bplcoltable[pix1]; - dpix_val1 = decode_ham_pixel_aga(pix1); - } - last_bpl_pix = pix1; - } - bplshiftcnt[0] += 1; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - loaded_pixs[1] = loaded_pix; - internal_pixel_cnt += 1; - uae_u8 pix2 = 0; - uae_u32 dpix_val2 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val2 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix2 = loaded_pixs[2]; - clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); - } - last_bpl_pix = pix2; - } - bplshiftcnt[0] += 1; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - loaded_pixs[2] = loaded_pix; - internal_pixel_cnt += 1; - uae_u8 pix3 = 0; - uae_u32 dpix_val3 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val3 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix3 = loaded_pixs[3]; - clxdat |= bplcoltable[pix3]; - dpix_val3 = decode_ham_pixel_aga(pix3); - } - last_bpl_pix = pix3; - } - bplshiftcnt[0] += 1; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 3) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - loaded_pixs[3] = loaded_pix; - internal_pixel_cnt += 1; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - dtbuf[h][0] = dpix_val0; - dtbuf[h][1] = dpix_val1; - dtbuf[h][2] = dpix_val2; - dtbuf[h][3] = dpix_val3; - uae_u32 t0 = dtbuf[h ^ lol][0]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t0 = decode_denise_specials_debug(t0, cnt + 0); - } - #endif - *buf1++ = t0; - *buf2++ = t0; - uae_u32 t1 = dtbuf[h ^ lol][1]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t1 = decode_denise_specials_debug(t1, cnt + 1); - } - #endif - *buf1++ = t1; - *buf2++ = t1; - uae_u32 t2 = dtbuf[h ^ lol][2]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t2 = decode_denise_specials_debug(t2, cnt + 2); - } - #endif - *buf1++ = t2; - *buf2++ = t2; - uae_u32 t3 = dtbuf[h ^ lol][3]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t3 = decode_denise_specials_debug(t3, cnt + 3); - } - #endif - *buf1++ = t3; - *buf2++ = t3; - } - sprites_hidden = sprites_hidden2; - #ifdef DEBUGGER - *debug_dma_dhpos_odd = denise_hcounter; - #endif - denise_hcounter++; - denise_hcounter &= 511; - denise_hcounter_next++; - denise_hcounter_next &= 511; - } - denise_pixtotal++; - if (denise_pixtotal == 0) { - internal_pixel_start_cnt = internal_pixel_cnt; - } - denise_hcounter = denise_hcounter_new; - denise_cck++; - } -} static void lts_aga_fm1_ham1_p8_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -25672,14 +34324,26 @@ static void lts_aga_fm1_ham1_p8_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm1_ham1_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p8_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p8_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p2_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -25903,6 +34567,10 @@ static void lts_aga_fm1_n0_p2_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p2_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -26170,6 +34838,10 @@ static void lts_aga_fm1_n1_p2_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p2_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -26413,6 +35085,10 @@ static void lts_aga_fm1_dpf0_p2_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p2_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -26700,30 +35376,58 @@ static void lts_aga_fm1_dpf1_p2_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ham0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ham1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p4_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -26947,6 +35651,10 @@ static void lts_aga_fm1_n0_p4_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p4_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -27214,6 +35922,10 @@ static void lts_aga_fm1_n1_p4_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p4_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -27457,6 +36169,10 @@ static void lts_aga_fm1_dpf0_p4_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p4_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -27744,30 +36460,58 @@ static void lts_aga_fm1_dpf1_p4_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ham0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ham1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -27991,6 +36735,10 @@ static void lts_aga_fm1_n0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -28258,6 +37006,10 @@ static void lts_aga_fm1_n1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -28501,6 +37253,10 @@ static void lts_aga_fm1_dpf0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -28788,6 +37544,10 @@ static void lts_aga_fm1_dpf1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -29035,6 +37795,10 @@ static void lts_aga_fm1_ehb0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_ehb0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -29326,6 +38090,10 @@ static void lts_aga_fm1_ehb1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_ehb1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -29549,6 +38317,10 @@ static void lts_aga_fm1_ham0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_ham0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -29816,6 +38588,10 @@ static void lts_aga_fm1_ham1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_ham1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -30043,6 +38819,10 @@ static void lts_aga_fm1_kehb0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_kehb0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -30314,6 +39094,10 @@ static void lts_aga_fm1_kehb1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_kehb1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p8_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -30537,6 +39321,10 @@ static void lts_aga_fm1_n0_p8_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n0_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p8_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -30804,6 +39592,10 @@ static void lts_aga_fm1_n1_p8_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n1_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p8_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -31047,6 +39839,10 @@ static void lts_aga_fm1_dpf0_p8_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p8_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -31334,14 +40130,26 @@ static void lts_aga_fm1_dpf1_p8_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p8_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p8_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p8_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -31565,6 +40373,10 @@ static void lts_aga_fm1_ham0_p8_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_ham0_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p8_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -31832,14 +40644,26 @@ static void lts_aga_fm1_ham1_p8_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_ham1_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p8_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p8_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p2_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -32003,6 +40827,10 @@ static void lts_aga_fm1_n0_p2_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_n0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p2_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -32210,6 +41038,10 @@ static void lts_aga_fm1_n1_p2_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_n1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p2_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -32393,6 +41225,10 @@ static void lts_aga_fm1_dpf0_p2_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p2_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -32620,30 +41456,58 @@ static void lts_aga_fm1_dpf1_p2_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p2_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p2_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p2_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm1_ham0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p2_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm1_ham1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p2_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p2_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p4_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -32807,6 +41671,10 @@ static void lts_aga_fm1_n0_p4_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_n0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p4_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -33014,6 +41882,10 @@ static void lts_aga_fm1_n1_p4_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_n1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p4_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -33197,6 +42069,10 @@ static void lts_aga_fm1_dpf0_p4_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p4_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -33424,30 +42300,58 @@ static void lts_aga_fm1_dpf1_p4_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p4_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p4_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p4_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm1_ham0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p4_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm1_ham1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p4_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p4_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -33611,6 +42515,10 @@ static void lts_aga_fm1_n0_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_n0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -33818,6 +42726,10 @@ static void lts_aga_fm1_n1_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_n1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -34001,6 +42913,10 @@ static void lts_aga_fm1_dpf0_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -34228,6 +43144,10 @@ static void lts_aga_fm1_dpf1_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -34415,6 +43335,10 @@ static void lts_aga_fm1_ehb0_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_ehb0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -34646,6 +43570,10 @@ static void lts_aga_fm1_ehb1_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_ehb1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -34809,6 +43737,10 @@ static void lts_aga_fm1_ham0_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_ham0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -35016,6 +43948,10 @@ static void lts_aga_fm1_ham1_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_ham1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -35183,6 +44119,10 @@ static void lts_aga_fm1_kehb0_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_kehb0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -35394,6 +44334,10 @@ static void lts_aga_fm1_kehb1_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_kehb1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p8_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -35557,6 +44501,10 @@ static void lts_aga_fm1_n0_p8_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_n0_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p8_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -35764,6 +44712,10 @@ static void lts_aga_fm1_n1_p8_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_n1_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p8_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -35947,6 +44899,10 @@ static void lts_aga_fm1_dpf0_p8_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p8_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -36174,14 +45130,26 @@ static void lts_aga_fm1_dpf1_p8_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p8_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p8_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p8_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -36345,6 +45313,10 @@ static void lts_aga_fm1_ham0_p8_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_ham0_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p8_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -36552,14 +45524,26 @@ static void lts_aga_fm1_ham1_p8_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm1_ham1_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p8_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p8_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p2_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -36783,6 +45767,10 @@ static void lts_aga_fm1_n0_p2_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p2_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -37050,6 +46038,10 @@ static void lts_aga_fm1_n1_p2_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p2_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -37293,6 +46285,10 @@ static void lts_aga_fm1_dpf0_p2_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p2_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -37580,30 +46576,58 @@ static void lts_aga_fm1_dpf1_p2_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ham0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ham1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p4_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -37827,6 +46851,10 @@ static void lts_aga_fm1_n0_p4_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p4_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -38094,6 +47122,10 @@ static void lts_aga_fm1_n1_p4_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p4_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -38337,6 +47369,10 @@ static void lts_aga_fm1_dpf0_p4_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p4_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -38624,30 +47660,58 @@ static void lts_aga_fm1_dpf1_p4_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ham0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ham1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -38871,6 +47935,10 @@ static void lts_aga_fm1_n0_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -39138,6 +48206,10 @@ static void lts_aga_fm1_n1_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -39381,6 +48453,10 @@ static void lts_aga_fm1_dpf0_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -39668,6 +48744,10 @@ static void lts_aga_fm1_dpf1_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -39915,6 +48995,10 @@ static void lts_aga_fm1_ehb0_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_ehb0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -40206,6 +49290,10 @@ static void lts_aga_fm1_ehb1_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_ehb1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -40429,6 +49517,10 @@ static void lts_aga_fm1_ham0_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_ham0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -40696,6 +49788,10 @@ static void lts_aga_fm1_ham1_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_ham1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -40923,6 +50019,10 @@ static void lts_aga_fm1_kehb0_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_kehb0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -41194,6 +50294,10 @@ static void lts_aga_fm1_kehb1_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_kehb1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p8_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -41417,6 +50521,10 @@ static void lts_aga_fm1_n0_p8_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n0_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p8_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -41684,6 +50792,10 @@ static void lts_aga_fm1_n1_p8_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n1_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p8_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -41927,6 +51039,10 @@ static void lts_aga_fm1_dpf0_p8_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p8_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -42214,14 +51330,26 @@ static void lts_aga_fm1_dpf1_p8_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p8_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p8_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p8_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -42445,6 +51573,10 @@ static void lts_aga_fm1_ham0_p8_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_ham0_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p8_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -42712,14 +51844,26 @@ static void lts_aga_fm1_ham1_p8_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_ham1_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p8_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p8_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p2_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -42859,6 +52003,10 @@ static void lts_aga_fm1_n0_p2_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm1_n0_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p2_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -43010,6 +52158,10 @@ static void lts_aga_fm1_n1_p2_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm1_n1_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p2_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -43169,6 +52321,10 @@ static void lts_aga_fm1_dpf0_p2_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p2_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -43340,30 +52496,58 @@ static void lts_aga_fm1_dpf1_p2_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p2_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p2_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p2_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_ham0_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p2_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_ham1_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p2_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p2_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p4_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -43503,6 +52687,10 @@ static void lts_aga_fm1_n0_p4_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm1_n0_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p4_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -43654,6 +52842,10 @@ static void lts_aga_fm1_n1_p4_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm1_n1_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p4_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -43813,6 +53005,10 @@ static void lts_aga_fm1_dpf0_p4_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p4_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -43984,110 +53180,218 @@ static void lts_aga_fm1_dpf1_p4_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_ham0_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_ham1_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_n0_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_n1_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_dpf0_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_dpf1_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_ham0_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_ham1_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p6_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_n0_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_n1_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_dpf0_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_dpf1_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_ham0_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_ham1_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p2_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -44287,6 +53591,10 @@ static void lts_aga_fm1_n0_p2_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n0_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p2_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -44498,6 +53806,10 @@ static void lts_aga_fm1_n1_p2_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n1_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p2_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -44717,6 +54029,10 @@ static void lts_aga_fm1_dpf0_p2_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p2_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -44948,30 +54264,58 @@ static void lts_aga_fm1_dpf1_p2_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p2_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p2_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p2_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ham0_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p2_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ham1_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p2_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p2_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p4_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -45171,6 +54515,10 @@ static void lts_aga_fm1_n0_p4_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n0_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p4_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -45382,6 +54730,10 @@ static void lts_aga_fm1_n1_p4_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_n1_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p4_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -45601,6 +54953,10 @@ static void lts_aga_fm1_dpf0_p4_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p4_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -45832,107 +55188,215 @@ static void lts_aga_fm1_dpf1_p4_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ham0_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ham1_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_n0_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_n1_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_dpf0_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_dpf1_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ham0_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ham1_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p6_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_n0_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_n1_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_dpf0_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_dpf1_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ham0_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_ham1_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} diff --git a/linetoscr_aga_fm1_genlock.cpp b/linetoscr_aga_fm1_genlock.cpp index e6c8c261..2af7991a 100644 --- a/linetoscr_aga_fm1_genlock.cpp +++ b/linetoscr_aga_fm1_genlock.cpp @@ -67,6 +67,10 @@ static void lts_aga_fm1_n0_p4_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n0_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p4_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -133,6 +137,10 @@ static void lts_aga_fm1_n1_p4_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n1_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p4_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -201,6 +209,10 @@ static void lts_aga_fm1_dpf0_p4_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p4_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -272,30 +284,58 @@ static void lts_aga_fm1_dpf1_p4_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p4_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p4_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p4_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham0_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p4_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham1_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p4_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p4_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p8_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -359,6 +399,10 @@ static void lts_aga_fm1_n0_p8_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n0_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p8_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -425,6 +469,10 @@ static void lts_aga_fm1_n1_p8_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n1_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p8_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -493,6 +541,10 @@ static void lts_aga_fm1_dpf0_p8_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p8_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -564,14 +616,26 @@ static void lts_aga_fm1_dpf1_p8_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p8_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p8_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p8_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -635,6 +699,10 @@ static void lts_aga_fm1_ham0_p8_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm1_ham0_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p8_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -701,14 +769,26 @@ static void lts_aga_fm1_ham1_p8_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm1_ham1_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p8_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p8_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p4_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -789,6 +869,10 @@ static void lts_aga_fm1_n0_p4_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n0_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p4_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -872,6 +956,10 @@ static void lts_aga_fm1_n1_p4_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n1_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p4_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -957,6 +1045,10 @@ static void lts_aga_fm1_dpf0_p4_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p4_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1045,30 +1137,58 @@ static void lts_aga_fm1_dpf1_p4_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p4_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p4_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p4_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham0_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p4_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham1_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p4_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p4_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p8_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1149,6 +1269,10 @@ static void lts_aga_fm1_n0_p8_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n0_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p8_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1232,6 +1356,10 @@ static void lts_aga_fm1_n1_p8_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n1_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p8_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1317,6 +1445,10 @@ static void lts_aga_fm1_dpf0_p8_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p8_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1405,14 +1537,26 @@ static void lts_aga_fm1_dpf1_p8_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p8_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p8_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p8_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1493,6 +1637,10 @@ static void lts_aga_fm1_ham0_p8_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_ham0_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p8_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1576,14 +1724,26 @@ static void lts_aga_fm1_ham1_p8_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_ham1_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p8_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p8_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p4_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -1648,7 +1808,7 @@ static void lts_aga_fm1_n0_p4_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm1_n1_p4_ihires_dlores_genlock(void) +static void lts_aga_fm1_n0_p4_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1676,16 +1836,33 @@ static void lts_aga_fm1_n1_p4_ihires_dlores_genlock(void) } shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl4(); } loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -1715,7 +1892,7 @@ static void lts_aga_fm1_n1_p4_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p4_ihires_dlores_genlock(void) +static void lts_aga_fm1_n1_p4_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1736,19 +1913,17 @@ static void lts_aga_fm1_dpf0_p4_ihires_dlores_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; @@ -1784,7 +1959,7 @@ static void lts_aga_fm1_dpf0_p4_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p4_ihires_dlores_genlock(void) +static void lts_aga_fm1_n1_p4_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1805,13 +1980,8 @@ static void lts_aga_fm1_dpf1_p4_ihires_dlores_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } @@ -1824,9 +1994,32 @@ static void lts_aga_fm1_dpf1_p4_ihires_dlores_genlock(void) } loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -1856,31 +2049,7 @@ static void lts_aga_fm1_dpf1_p4_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p4_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p4_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p4_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p4_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p4_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p4_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p8_ihires_dlores_genlock(void) +static void lts_aga_fm1_dpf0_p4_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1901,18 +2070,23 @@ static void lts_aga_fm1_n0_p8_ihires_dlores_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } - shiftbpl8(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl4(); } - loaded_pix = getbpl8_32(); + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; - shiftbpl8(); + shiftbpl4(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -1944,7 +2118,7 @@ static void lts_aga_fm1_n0_p8_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm1_n1_p8_ihires_dlores_genlock(void) +static void lts_aga_fm1_dpf0_p4_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1965,23 +2139,50 @@ static void lts_aga_fm1_n1_p8_ihires_dlores_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } - shiftbpl8(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl4(); } - loaded_pix = getbpl8_32(); + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; - shiftbpl8(); + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2011,7 +2212,7 @@ static void lts_aga_fm1_n1_p8_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p8_ihires_dlores_genlock(void) +static void lts_aga_fm1_dpf1_p4_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2042,13 +2243,16 @@ static void lts_aga_fm1_dpf0_p8_ihires_dlores_genlock(void) } last_bpl_pix = pix0; } - shiftbpl8(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl4e(); } - loaded_pix = getbpl8_32(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; - shiftbpl8(); + shiftbpl4(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -2080,7 +2284,7 @@ static void lts_aga_fm1_dpf0_p8_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p8_ihires_dlores_genlock(void) +static void lts_aga_fm1_dpf1_p4_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2111,18 +2315,46 @@ static void lts_aga_fm1_dpf1_p8_ihires_dlores_genlock(void) } last_bpl_pix = pix0; } - shiftbpl8(); + shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); + copybpl4e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl4o(); } - loaded_pix = getbpl8_32(); + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; - shiftbpl8(); + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2152,15 +2384,55 @@ static void lts_aga_fm1_dpf1_p8_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p8_ihires_dlores_genlock(void) +static void lts_aga_fm1_ehb0_p4_ihires_dlores_genlock(void) { lts_null(); } -static void lts_aga_fm1_ehb1_p8_ihires_dlores_genlock(void) +static void lts_aga_fm1_ehb0_p4_ihires_dlores_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm1_ham0_p8_ihires_dlores_genlock(void) +static void lts_aga_fm1_ehb1_p4_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2181,8 +2453,8 @@ static void lts_aga_fm1_ham0_p8_ihires_dlores_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); - gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } @@ -2192,23 +2464,7 @@ static void lts_aga_fm1_ham0_p8_ihires_dlores_genlock(void) } loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; - uae_u8 pix1 = 0; - uae_u8 gpix1 = 0xff; - uae_u32 dpix_val1 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val1 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); - } - last_bpl_pix = pix1; - } shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); - } - loaded_pix = getbpl8_32(); - loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -2240,7 +2496,7 @@ static void lts_aga_fm1_ham0_p8_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ham1_p8_ihires_dlores_genlock(void) +static void lts_aga_fm1_n0_p8_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2261,17 +2517,14 @@ static void lts_aga_fm1_ham1_p8_ihires_dlores_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); - gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl8(); } loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; @@ -2279,24 +2532,25 @@ static void lts_aga_fm1_ham1_p8_ihires_dlores_genlock(void) uae_u8 gpix1 = 0xff; uae_u32 dpix_val1 = BLANK_COLOR; if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix1; } shiftbpl8(); if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl8(); } loaded_pix = getbpl8_32(); loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2326,15 +2580,7 @@ static void lts_aga_fm1_ham1_p8_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm1_kehb0_p8_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p8_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p4_ihires_dlores_spr_genlock(void) +static void lts_aga_fm1_n1_p8_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2346,7 +2592,6 @@ static void lts_aga_fm1_n0_p4_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -2361,31 +2606,18 @@ static void lts_aga_fm1_n0_p4_ihires_dlores_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl8e(); } - loaded_pix = getbpl4_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); } + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; - shiftbpl4(); + shiftbpl8(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2415,7 +2647,7 @@ static void lts_aga_fm1_n0_p4_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_n1_p4_ihires_dlores_spr_genlock(void) +static void lts_aga_fm1_n1_p8_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2427,7 +2659,6 @@ static void lts_aga_fm1_n1_p4_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -2442,34 +2673,41 @@ static void lts_aga_fm1_n1_p4_ihires_dlores_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); + copybpl8e(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl8o(); } - loaded_pix = getbpl4_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl8_32(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; - shiftbpl4(); + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2499,7 +2737,7 @@ static void lts_aga_fm1_n1_p4_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p4_ihires_dlores_spr_genlock(void) +static void lts_aga_fm1_dpf0_p8_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2511,7 +2749,6 @@ static void lts_aga_fm1_dpf0_p4_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -2531,31 +2768,15 @@ static void lts_aga_fm1_dpf0_p4_ihires_dlores_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); - } - loaded_pix = getbpl4_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + copybpl8(); } + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; - shiftbpl4(); + shiftbpl8(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2585,7 +2806,7 @@ static void lts_aga_fm1_dpf0_p4_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p4_ihires_dlores_spr_genlock(void) +static void lts_aga_fm1_dpf0_p8_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2597,7 +2818,6 @@ static void lts_aga_fm1_dpf1_p4_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -2617,34 +2837,40 @@ static void lts_aga_fm1_dpf1_p4_ihires_dlores_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl8(); } - loaded_pix = getbpl4_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl8_32(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; - shiftbpl4(); + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2674,31 +2900,7 @@ static void lts_aga_fm1_dpf1_p4_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p4_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p4_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p4_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p4_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p4_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p4_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p8_ihires_dlores_spr_genlock(void) +static void lts_aga_fm1_dpf1_p8_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2710,7 +2912,6 @@ static void lts_aga_fm1_n0_p8_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -2720,36 +2921,28 @@ static void lts_aga_fm1_n0_p8_ihires_dlores_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl8e(); } - loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); } + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; shiftbpl8(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2779,7 +2972,7 @@ static void lts_aga_fm1_n0_p8_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_n1_p8_ihires_dlores_spr_genlock(void) +static void lts_aga_fm1_dpf1_p8_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2791,7 +2984,6 @@ static void lts_aga_fm1_n1_p8_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -2801,8 +2993,13 @@ static void lts_aga_fm1_n1_p8_ihires_dlores_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } @@ -2814,26 +3011,38 @@ static void lts_aga_fm1_n1_p8_ihires_dlores_spr_genlock(void) copybpl8o(); } loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2863,7 +3072,23 @@ static void lts_aga_fm1_n1_p8_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p8_ihires_dlores_spr_genlock(void) +static void lts_aga_fm1_ehb0_p8_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2875,7 +3100,6 @@ static void lts_aga_fm1_dpf0_p8_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -2885,13 +3109,8 @@ static void lts_aga_fm1_dpf0_p8_ihires_dlores_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); } last_bpl_pix = pix0; } @@ -2900,26 +3119,26 @@ static void lts_aga_fm1_dpf0_p8_ihires_dlores_spr_genlock(void) copybpl8(); } loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2949,7 +3168,7 @@ static void lts_aga_fm1_dpf0_p8_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p8_ihires_dlores_spr_genlock(void) +static void lts_aga_fm1_ham0_p8_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2961,7 +3180,6 @@ static void lts_aga_fm1_dpf1_p8_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -2971,44 +3189,40 @@ static void lts_aga_fm1_dpf1_p8_ihires_dlores_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); } last_bpl_pix = pix0; } shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl8(); } loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } - } loaded_pixs[0] = loaded_pix; - shiftbpl8(); - internal_pixel_cnt += 4; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + gpix1 = get_genlock_transparency((pix1 >> 2) & 63); } + last_bpl_pix = pix1; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -3038,15 +3252,7 @@ static void lts_aga_fm1_dpf1_p8_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p8_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p8_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p8_ihires_dlores_spr_genlock(void) +static void lts_aga_fm1_ham1_p8_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3058,7 +3264,6 @@ static void lts_aga_fm1_ham0_p8_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -3075,17 +3280,12 @@ static void lts_aga_fm1_ham0_p8_ihires_dlores_spr_genlock(void) } shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl8e(); } - loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); } + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; uae_u8 pix1 = 0; uae_u8 gpix1 = 0xff; @@ -3100,20 +3300,15 @@ static void lts_aga_fm1_ham0_p8_ihires_dlores_spr_genlock(void) } shiftbpl8(); if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); } loaded_pix = getbpl8_32(); loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -3143,7 +3338,7 @@ static void lts_aga_fm1_ham0_p8_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ham1_p8_ihires_dlores_spr_genlock(void) +static void lts_aga_fm1_ham1_p8_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3155,7 +3350,6 @@ static void lts_aga_fm1_ham1_p8_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -3178,23 +3372,18 @@ static void lts_aga_fm1_ham1_p8_ihires_dlores_spr_genlock(void) copybpl8o(); } loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } - } loaded_pixs[0] = loaded_pix; uae_u8 pix1 = 0; uae_u8 gpix1 = 0xff; uae_u32 dpix_val1 = BLANK_COLOR; if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + gpix1 = get_genlock_transparency((pix1 >> 2) & 63); } last_bpl_pix = pix1; } @@ -3209,14 +3398,7 @@ static void lts_aga_fm1_ham1_p8_ihires_dlores_spr_genlock(void) loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -3246,175 +3428,23 @@ static void lts_aga_fm1_ham1_p8_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_kehb0_p8_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p8_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_n1_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf0_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf1_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb0_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_n1_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf0_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf1_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb0_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_n1_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf0_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf1_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb0_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p8_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_n1_p8_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf0_p8_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf1_p8_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb0_p8_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p8_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p8_ishres_dlores_spr_genlock(void) +static void lts_aga_fm1_kehb0_p8_ihires_dlores_genlock(void) { lts_null(); } -static void lts_aga_fm1_ham1_p8_ishres_dlores_spr_genlock(void) +static void lts_aga_fm1_kehb0_p8_ihires_dlores_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm1_kehb0_p8_ishres_dlores_spr_genlock(void) +static void lts_aga_fm1_kehb1_p8_ihires_dlores_genlock(void) { lts_null(); } -static void lts_aga_fm1_kehb1_p8_ishres_dlores_spr_genlock(void) +static void lts_aga_fm1_kehb1_p8_ihires_dlores_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm1_n0_p4_ilores_dhires_genlock(void) +static void lts_aga_fm1_n0_p4_ihires_dlores_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3426,6 +3456,7 @@ static void lts_aga_fm1_n0_p4_ilores_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -3440,51 +3471,33 @@ static void lts_aga_fm1_n0_p4_ilores_dhires_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl4(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); } - loaded_pixs[0] = loaded_pix; - internal_pixel_cnt += 2; - uae_u8 pix2 = 0; - uae_u8 gpix2 = 0xff; - uae_u32 dpix_val2 = BLANK_COLOR; - if (!denise_blank_active) { - gpix2 = get_genlock_transparency_border(); - dpix_val2 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix2 = loaded_pixs[2]; - clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; - gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; } - last_bpl_pix = pix2; - } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); } - loaded_pixs[2] = loaded_pix; - internal_pixel_cnt += 2; + loaded_pixs[0] = loaded_pix; + shiftbpl4(); + internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - dtbuf[h][2] = dpix_val2; - dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER if (decode_specials_debug) { @@ -3494,15 +3507,6 @@ static void lts_aga_fm1_n0_p4_ilores_dhires_genlock(void) *buf1++ = t0; *buf2++ = t0; *gbuf++ = dtgbuf[h ^ lol][0]; - uae_u32 t2 = dtbuf[h ^ lol][2]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t2 = decode_denise_specials_debug(t2, cnt + 2); - } - #endif - *buf1++ = t2; - *buf2++ = t2; - *gbuf++ = dtgbuf[h ^ lol][2]; } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -3521,7 +3525,7 @@ static void lts_aga_fm1_n0_p4_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_n1_p4_ilores_dhires_genlock(void) +static void lts_aga_fm1_n0_p4_ihires_dlores_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3533,6 +3537,7 @@ static void lts_aga_fm1_n1_p4_ilores_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -3547,73 +3552,54 @@ static void lts_aga_fm1_n1_p4_ilores_dhires_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_32(); + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } loaded_pixs[0] = loaded_pix; - internal_pixel_cnt += 2; - uae_u8 pix2 = 0; - uae_u8 gpix2 = 0xff; - uae_u32 dpix_val2 = BLANK_COLOR; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; if (!denise_blank_active) { - gpix2 = get_genlock_transparency_border(); - dpix_val2 = bordercolor; + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix2 = loaded_pixs[2]; - clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; - gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); } - last_bpl_pix = pix2; - } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); + last_bpl_pix = pix1; } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_32(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); } - loaded_pixs[2] = loaded_pix; - internal_pixel_cnt += 2; + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - dtbuf[h][2] = dpix_val2; - dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER if (decode_specials_debug) { @@ -3623,15 +3609,6 @@ static void lts_aga_fm1_n1_p4_ilores_dhires_genlock(void) *buf1++ = t0; *buf2++ = t0; *gbuf++ = dtgbuf[h ^ lol][0]; - uae_u32 t2 = dtbuf[h ^ lol][2]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t2 = decode_denise_specials_debug(t2, cnt + 2); - } - #endif - *buf1++ = t2; - *buf2++ = t2; - *gbuf++ = dtgbuf[h ^ lol][2]; } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -3650,7 +3627,7 @@ static void lts_aga_fm1_n1_p4_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p4_ilores_dhires_genlock(void) +static void lts_aga_fm1_n1_p4_ihires_dlores_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3662,6 +3639,7 @@ static void lts_aga_fm1_dpf0_p4_ilores_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -3671,66 +3649,41 @@ static void lts_aga_fm1_dpf0_p4_ilores_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4_32(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } - loaded_pixs[0] = loaded_pix; - internal_pixel_cnt += 2; - uae_u8 pix2 = 0; - uae_u8 gpix2 = 0xff; - uae_u32 dpix_val2 = BLANK_COLOR; - if (!denise_blank_active) { - gpix2 = get_genlock_transparency_border(); - dpix_val2 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix2 = loaded_pixs[2]; - clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; - gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; } - last_bpl_pix = pix2; - } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); } - loaded_pixs[2] = loaded_pix; - internal_pixel_cnt += 2; + loaded_pixs[0] = loaded_pix; + shiftbpl4(); + internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - dtbuf[h][2] = dpix_val2; - dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER if (decode_specials_debug) { @@ -3740,15 +3693,6 @@ static void lts_aga_fm1_dpf0_p4_ilores_dhires_genlock(void) *buf1++ = t0; *buf2++ = t0; *gbuf++ = dtgbuf[h ^ lol][0]; - uae_u32 t2 = dtbuf[h ^ lol][2]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t2 = decode_denise_specials_debug(t2, cnt + 2); - } - #endif - *buf1++ = t2; - *buf2++ = t2; - *gbuf++ = dtgbuf[h ^ lol][2]; } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -3767,7 +3711,7 @@ static void lts_aga_fm1_dpf0_p4_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p4_ilores_dhires_genlock(void) +static void lts_aga_fm1_n1_p4_ihires_dlores_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3779,6 +3723,7 @@ static void lts_aga_fm1_dpf1_p4_ilores_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -3788,13 +3733,3923 @@ static void lts_aga_fm1_dpf1_p4_ilores_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p4_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p4_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf1_p4_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf1_p4_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ehb0_p4_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl8(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n0_p8_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n1_p8_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl8(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n1_p8_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p8_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl8(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p8_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf1_p8_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl8(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf1_p8_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ehb0_p8_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ham0_p8_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + gpix1 = get_genlock_transparency((pix1 >> 2) & 63); + } + last_bpl_pix = pix1; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ham1_p8_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ham1_p8_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + } + last_bpl_pix = pix0; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + gpix1 = get_genlock_transparency((pix1 >> 2) & 63); + } + last_bpl_pix = pix1; + } + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_kehb0_p8_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p8_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n0_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p4_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e(); + loaded_pix = getbpl4_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e(); + loaded_pix = getbpl4_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n1_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p4_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p4_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e(); + loaded_pix = getbpl4_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e(); + loaded_pix = getbpl4_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf1_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n0_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e(); + loaded_pix = getbpl8_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e(); + loaded_pix = getbpl8_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n1_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p8_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e(); + loaded_pix = getbpl8_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e(); + loaded_pix = getbpl8_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf1_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = decode_ham_pixel_aga(pix2); + gpix2 = get_genlock_transparency((pix2 >> 2) & 63); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ham0_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e(); + loaded_pix = getbpl8_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = decode_ham_pixel_aga(pix2); + gpix2 = get_genlock_transparency((pix2 >> 2) & 63); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e(); + loaded_pix = getbpl8_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o(); + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_32(); + } + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_32(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_ham1_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p8_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ilores_dhires_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n0_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p4_ilores_dhires_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e(); + loaded_pix = getbpl4_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_32(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e(); + loaded_pix = getbpl4_32(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_32(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_n1_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p4_ilores_dhires_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4(); + loaded_pix = getbpl4_32(); + } + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_32(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm1_dpf0_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p4_ilores_dhires_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } @@ -3820,8 +7675,17 @@ static void lts_aga_fm1_dpf1_p4_ilores_dhires_genlock(void) bplshiftcnt[1] = 0; loaded_pix = getbpl4_32(); } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -3863,11 +7727,35 @@ static void lts_aga_fm1_dpf1_p4_ilores_dhires_genlock(void) bplshiftcnt[1] = 0; loaded_pix = getbpl4_32(); } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -3906,31 +7794,59 @@ static void lts_aga_fm1_dpf1_p4_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p4_ilores_dhires_genlock(void) +static void lts_aga_fm1_dpf1_p4_ilores_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm1_ehb1_p4_ilores_dhires_genlock(void) +static void lts_aga_fm1_ehb0_p4_ilores_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm1_ham0_p4_ilores_dhires_genlock(void) +static void lts_aga_fm1_ehb0_p4_ilores_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm1_ham1_p4_ilores_dhires_genlock(void) +static void lts_aga_fm1_ehb1_p4_ilores_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm1_kehb0_p4_ilores_dhires_genlock(void) +static void lts_aga_fm1_ehb1_p4_ilores_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm1_kehb1_p4_ilores_dhires_genlock(void) +static void lts_aga_fm1_ham0_p4_ilores_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm1_n0_p8_ilores_dhires_genlock(void) +static void lts_aga_fm1_ham0_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ilores_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ilores_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ilores_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3942,6 +7858,7 @@ static void lts_aga_fm1_n0_p8_ilores_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -3967,8 +7884,17 @@ static void lts_aga_fm1_n0_p8_ilores_dhires_genlock(void) bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -3994,11 +7920,35 @@ static void lts_aga_fm1_n0_p8_ilores_dhires_genlock(void) bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -4037,7 +7987,11 @@ static void lts_aga_fm1_n0_p8_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_n1_p8_ilores_dhires_genlock(void) +static void lts_aga_fm1_n0_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4049,6 +8003,7 @@ static void lts_aga_fm1_n1_p8_ilores_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -4085,8 +8040,17 @@ static void lts_aga_fm1_n1_p8_ilores_dhires_genlock(void) bplshiftcnt[1] = 0; loaded_pix = getbpl8_32(); } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -4123,11 +8087,35 @@ static void lts_aga_fm1_n1_p8_ilores_dhires_genlock(void) bplshiftcnt[1] = 0; loaded_pix = getbpl8_32(); } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -4166,7 +8154,11 @@ static void lts_aga_fm1_n1_p8_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p8_ilores_dhires_genlock(void) +static void lts_aga_fm1_n1_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p8_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4178,6 +8170,7 @@ static void lts_aga_fm1_dpf0_p8_ilores_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -4208,8 +8201,17 @@ static void lts_aga_fm1_dpf0_p8_ilores_dhires_genlock(void) bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -4240,11 +8242,35 @@ static void lts_aga_fm1_dpf0_p8_ilores_dhires_genlock(void) bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -4283,7 +8309,11 @@ static void lts_aga_fm1_dpf0_p8_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p8_ilores_dhires_genlock(void) +static void lts_aga_fm1_dpf0_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4295,6 +8325,7 @@ static void lts_aga_fm1_dpf1_p8_ilores_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -4336,8 +8367,17 @@ static void lts_aga_fm1_dpf1_p8_ilores_dhires_genlock(void) bplshiftcnt[1] = 0; loaded_pix = getbpl8_32(); } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -4379,11 +8419,35 @@ static void lts_aga_fm1_dpf1_p8_ilores_dhires_genlock(void) bplshiftcnt[1] = 0; loaded_pix = getbpl8_32(); } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -4422,15 +8486,27 @@ static void lts_aga_fm1_dpf1_p8_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p8_ilores_dhires_genlock(void) +static void lts_aga_fm1_dpf1_p8_ilores_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm1_ehb1_p8_ilores_dhires_genlock(void) +static void lts_aga_fm1_ehb0_p8_ilores_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm1_ham0_p8_ilores_dhires_genlock(void) +static void lts_aga_fm1_ehb0_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ilores_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4442,6 +8518,7 @@ static void lts_aga_fm1_ham0_p8_ilores_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -4467,8 +8544,17 @@ static void lts_aga_fm1_ham0_p8_ilores_dhires_genlock(void) bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -4494,11 +8580,35 @@ static void lts_aga_fm1_ham0_p8_ilores_dhires_genlock(void) bplshiftcnt[0] = 0; loaded_pix = getbpl8_32(); } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -4537,7 +8647,11 @@ static void lts_aga_fm1_ham0_p8_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ham1_p8_ilores_dhires_genlock(void) +static void lts_aga_fm1_ham0_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4549,6 +8663,7 @@ static void lts_aga_fm1_ham1_p8_ilores_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -4585,8 +8700,17 @@ static void lts_aga_fm1_ham1_p8_ilores_dhires_genlock(void) bplshiftcnt[1] = 0; loaded_pix = getbpl8_32(); } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -4623,11 +8747,35 @@ static void lts_aga_fm1_ham1_p8_ilores_dhires_genlock(void) bplshiftcnt[1] = 0; loaded_pix = getbpl8_32(); } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -4666,15 +8814,27 @@ static void lts_aga_fm1_ham1_p8_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_kehb0_p8_ilores_dhires_genlock(void) +static void lts_aga_fm1_ham1_p8_ilores_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm1_kehb1_p8_ilores_dhires_genlock(void) +static void lts_aga_fm1_kehb0_p8_ilores_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm1_n0_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_kehb0_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ilores_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4686,7 +8846,6 @@ static void lts_aga_fm1_n0_p4_ilores_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -4701,28 +8860,13 @@ static void lts_aga_fm1_n0_p4_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl4(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -4737,46 +8881,16 @@ static void lts_aga_fm1_n0_p4_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl4(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } } + loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -4815,7 +8929,11 @@ static void lts_aga_fm1_n0_p4_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_n1_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_n0_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p4_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4827,7 +8945,6 @@ static void lts_aga_fm1_n1_p4_ilores_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -4842,39 +8959,16 @@ static void lts_aga_fm1_n1_p4_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl4e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { copybpl4o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -4889,57 +8983,19 @@ static void lts_aga_fm1_n1_p4_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl4e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { copybpl4o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } } + loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -4978,7 +9034,11 @@ static void lts_aga_fm1_n1_p4_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_n1_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p4_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4990,7 +9050,6 @@ static void lts_aga_fm1_dpf0_p4_ilores_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -5010,28 +9069,13 @@ static void lts_aga_fm1_dpf0_p4_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl4(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -5051,46 +9095,16 @@ static void lts_aga_fm1_dpf0_p4_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl4(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } } + loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -5129,7 +9143,11 @@ static void lts_aga_fm1_dpf0_p4_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_dpf0_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p4_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5141,7 +9159,6 @@ static void lts_aga_fm1_dpf1_p4_ilores_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -5161,39 +9178,16 @@ static void lts_aga_fm1_dpf1_p4_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl4e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { copybpl4o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -5213,57 +9207,19 @@ static void lts_aga_fm1_dpf1_p4_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e(); - loaded_pix = getbpl4_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o(); - loaded_pix = getbpl4_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl4e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_32(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { copybpl4o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } } + loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -5302,31 +9258,59 @@ static void lts_aga_fm1_dpf1_p4_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_dpf1_p4_ihires_dhires_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm1_ehb1_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_ehb0_p4_ihires_dhires_genlock(void) { lts_null(); } -static void lts_aga_fm1_ham0_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_ehb0_p4_ihires_dhires_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm1_ham1_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_ehb1_p4_ihires_dhires_genlock(void) { lts_null(); } -static void lts_aga_fm1_kehb0_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_ehb1_p4_ihires_dhires_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm1_kehb1_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_ham0_p4_ihires_dhires_genlock(void) { lts_null(); } -static void lts_aga_fm1_n0_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_ham0_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ihires_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ihires_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ihires_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5338,7 +9322,6 @@ static void lts_aga_fm1_n0_p8_ilores_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -5353,28 +9336,13 @@ static void lts_aga_fm1_n0_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } } + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -5389,46 +9357,16 @@ static void lts_aga_fm1_n0_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } } + loaded_pix = getbpl8_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -5467,7 +9405,11 @@ static void lts_aga_fm1_n0_p8_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_n1_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_n0_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5479,7 +9421,6 @@ static void lts_aga_fm1_n1_p8_ilores_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -5494,39 +9435,16 @@ static void lts_aga_fm1_n1_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl8e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } } + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -5541,57 +9459,19 @@ static void lts_aga_fm1_n1_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl8e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } } + loaded_pix = getbpl8_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -5630,7 +9510,11 @@ static void lts_aga_fm1_n1_p8_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_n1_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p8_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5642,7 +9526,6 @@ static void lts_aga_fm1_dpf0_p8_ilores_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -5662,28 +9545,13 @@ static void lts_aga_fm1_dpf0_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } } + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -5703,46 +9571,16 @@ static void lts_aga_fm1_dpf0_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } } + loaded_pix = getbpl8_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -5781,7 +9619,11 @@ static void lts_aga_fm1_dpf0_p8_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_dpf0_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5793,7 +9635,6 @@ static void lts_aga_fm1_dpf1_p8_ilores_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -5813,39 +9654,16 @@ static void lts_aga_fm1_dpf1_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl8e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } } + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -5865,57 +9683,19 @@ static void lts_aga_fm1_dpf1_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl8e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } } + loaded_pix = getbpl8_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -5954,15 +9734,27 @@ static void lts_aga_fm1_dpf1_p8_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_dpf1_p8_ihires_dhires_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm1_ehb1_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_ehb0_p8_ihires_dhires_genlock(void) { lts_null(); } -static void lts_aga_fm1_ham0_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_ehb0_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ihires_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5974,7 +9766,6 @@ static void lts_aga_fm1_ham0_p8_ilores_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -5989,28 +9780,13 @@ static void lts_aga_fm1_ham0_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } } + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -6020,51 +9796,21 @@ static void lts_aga_fm1_ham0_p8_ilores_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); - gpix2 = get_genlock_transparency((pix2 >> 2) & 63); - } - last_bpl_pix = pix2; - } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8(); - loaded_pix = getbpl8_32(); + dpix_val2 = decode_ham_pixel_aga(pix2); + gpix2 = get_genlock_transparency((pix2 >> 2) & 63); + } + last_bpl_pix = pix2; } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl8(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } } + loaded_pix = getbpl8_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -6103,7 +9849,11 @@ static void lts_aga_fm1_ham0_p8_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ham1_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_ham0_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6115,7 +9865,6 @@ static void lts_aga_fm1_ham1_p8_ilores_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -6130,39 +9879,16 @@ static void lts_aga_fm1_ham1_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl8e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } } + loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -6177,57 +9903,19 @@ static void lts_aga_fm1_ham1_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e(); - loaded_pix = getbpl8_32(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o(); - loaded_pix = getbpl8_32(); - } - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + shiftbpl8(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl8e(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_32(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { copybpl8o(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_32(); - } - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } } + loaded_pix = getbpl8_32(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -6266,15 +9954,27 @@ static void lts_aga_fm1_ham1_p8_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_kehb0_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_ham1_p8_ihires_dhires_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm1_kehb1_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm1_kehb0_p8_ihires_dhires_genlock(void) { lts_null(); } -static void lts_aga_fm1_n0_p4_ihires_dhires_genlock(void) +static void lts_aga_fm1_kehb0_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ihires_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6286,6 +9986,7 @@ static void lts_aga_fm1_n0_p4_ihires_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -6305,8 +10006,17 @@ static void lts_aga_fm1_n0_p4_ihires_dhires_genlock(void) copybpl4(); } loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -6326,11 +10036,35 @@ static void lts_aga_fm1_n0_p4_ihires_dhires_genlock(void) copybpl4(); } loaded_pix = getbpl4_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -6369,7 +10103,11 @@ static void lts_aga_fm1_n0_p4_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_n1_p4_ihires_dhires_genlock(void) +static void lts_aga_fm1_n0_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p4_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6381,6 +10119,7 @@ static void lts_aga_fm1_n1_p4_ihires_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -6403,8 +10142,17 @@ static void lts_aga_fm1_n1_p4_ihires_dhires_genlock(void) copybpl4o(); } loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -6427,11 +10175,35 @@ static void lts_aga_fm1_n1_p4_ihires_dhires_genlock(void) copybpl4o(); } loaded_pix = getbpl4_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -6470,7 +10242,11 @@ static void lts_aga_fm1_n1_p4_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p4_ihires_dhires_genlock(void) +static void lts_aga_fm1_n1_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p4_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6482,6 +10258,7 @@ static void lts_aga_fm1_dpf0_p4_ihires_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -6506,8 +10283,17 @@ static void lts_aga_fm1_dpf0_p4_ihires_dhires_genlock(void) copybpl4(); } loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -6532,11 +10318,35 @@ static void lts_aga_fm1_dpf0_p4_ihires_dhires_genlock(void) copybpl4(); } loaded_pix = getbpl4_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -6575,7 +10385,11 @@ static void lts_aga_fm1_dpf0_p4_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p4_ihires_dhires_genlock(void) +static void lts_aga_fm1_dpf0_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p4_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6587,6 +10401,7 @@ static void lts_aga_fm1_dpf1_p4_ihires_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -6613,9 +10428,18 @@ static void lts_aga_fm1_dpf1_p4_ihires_dhires_genlock(void) if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { copybpl4o(); } - loaded_pix = getbpl4_32(); + loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -6643,11 +10467,35 @@ static void lts_aga_fm1_dpf1_p4_ihires_dhires_genlock(void) copybpl4o(); } loaded_pix = getbpl4_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -6686,31 +10534,59 @@ static void lts_aga_fm1_dpf1_p4_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p4_ihires_dhires_genlock(void) +static void lts_aga_fm1_dpf1_p4_ihires_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm1_ehb1_p4_ihires_dhires_genlock(void) +static void lts_aga_fm1_ehb0_p4_ihires_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm1_ham0_p4_ihires_dhires_genlock(void) +static void lts_aga_fm1_ehb0_p4_ihires_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm1_ham1_p4_ihires_dhires_genlock(void) +static void lts_aga_fm1_ehb1_p4_ihires_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm1_kehb0_p4_ihires_dhires_genlock(void) +static void lts_aga_fm1_ehb1_p4_ihires_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm1_kehb1_p4_ihires_dhires_genlock(void) +static void lts_aga_fm1_ham0_p4_ihires_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm1_n0_p8_ihires_dhires_genlock(void) +static void lts_aga_fm1_ham0_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ihires_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ihires_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ihires_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6722,6 +10598,7 @@ static void lts_aga_fm1_n0_p8_ihires_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -6741,8 +10618,17 @@ static void lts_aga_fm1_n0_p8_ihires_dhires_genlock(void) copybpl8(); } loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -6762,11 +10648,35 @@ static void lts_aga_fm1_n0_p8_ihires_dhires_genlock(void) copybpl8(); } loaded_pix = getbpl8_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -6805,7 +10715,11 @@ static void lts_aga_fm1_n0_p8_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_n1_p8_ihires_dhires_genlock(void) +static void lts_aga_fm1_n0_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6817,6 +10731,7 @@ static void lts_aga_fm1_n1_p8_ihires_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -6839,8 +10754,17 @@ static void lts_aga_fm1_n1_p8_ihires_dhires_genlock(void) copybpl8o(); } loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -6863,11 +10787,35 @@ static void lts_aga_fm1_n1_p8_ihires_dhires_genlock(void) copybpl8o(); } loaded_pix = getbpl8_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -6906,7 +10854,11 @@ static void lts_aga_fm1_n1_p8_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p8_ihires_dhires_genlock(void) +static void lts_aga_fm1_n1_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p8_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6918,6 +10870,7 @@ static void lts_aga_fm1_dpf0_p8_ihires_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -6942,116 +10895,17 @@ static void lts_aga_fm1_dpf0_p8_ihires_dhires_genlock(void) copybpl8(); } loaded_pix = getbpl8_32(); - loaded_pixs[0] = loaded_pix; - internal_pixel_cnt += 2; - uae_u8 pix2 = 0; - uae_u8 gpix2 = 0xff; - uae_u32 dpix_val2 = BLANK_COLOR; - if (!denise_blank_active) { - gpix2 = get_genlock_transparency_border(); - dpix_val2 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix2 = loaded_pixs[2]; - clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; - gpix2 = get_genlock_transparency(dpf_lookup[pix2]); - } - last_bpl_pix = pix2; - } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); - } - loaded_pix = getbpl8_32(); - loaded_pixs[2] = loaded_pix; - internal_pixel_cnt += 2; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - dtbuf[h][0] = dpix_val0; - dtgbuf[h][0] = gpix0; - dtbuf[h][2] = dpix_val2; - dtgbuf[h][2] = gpix2; - uae_u32 t0 = dtbuf[h ^ lol][0]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t0 = decode_denise_specials_debug(t0, cnt + 0); - } - #endif - *buf1++ = t0; - *buf2++ = t0; - *gbuf++ = dtgbuf[h ^ lol][0]; - uae_u32 t2 = dtbuf[h ^ lol][2]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t2 = decode_denise_specials_debug(t2, cnt + 2); - } - #endif - *buf1++ = t2; - *buf2++ = t2; - *gbuf++ = dtgbuf[h ^ lol][2]; - } - sprites_hidden = sprites_hidden2; - #ifdef DEBUGGER - *debug_dma_dhpos_odd = denise_hcounter; - #endif - denise_hcounter++; - denise_hcounter &= 511; - denise_hcounter_next++; - denise_hcounter_next &= 511; - } - denise_pixtotal++; - if (denise_pixtotal == 0) { - internal_pixel_start_cnt = internal_pixel_cnt; - } - denise_hcounter = denise_hcounter_new; - denise_cck++; - } -} -static void lts_aga_fm1_dpf1_p8_ihires_dhires_genlock(void) -{ - while (denise_cck < denise_total) { - do_denise_cck(denise_linecnt, denise_startpos, denise_cck); - if (lts_changed) return; - for (int h = 0; h < 2; h++) { - if (h) { - denise_hcounter_next = denise_hcounter_new; - } - int cnt = denise_hcounter << 2; - int cnt_next = denise_hcounter_next << 2; - if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - uae_u8 pix0 = 0; - uae_u8 gpix0 = 0xff; - uae_u32 dpix_val0 = BLANK_COLOR; - if (!denise_blank_active) { - gpix0 = get_genlock_transparency_border(); - dpix_val0 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix0 = loaded_pixs[0]; - clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; } - last_bpl_pix = pix0; - } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); } - loaded_pix = getbpl8_32(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -7073,17 +10927,38 @@ static void lts_aga_fm1_dpf1_p8_ihires_dhires_genlock(void) } shiftbpl8(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl8(); } loaded_pix = getbpl8_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -7122,15 +10997,11 @@ static void lts_aga_fm1_dpf1_p8_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p8_ihires_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p8_ihires_dhires_genlock(void) +static void lts_aga_fm1_dpf0_p8_ihires_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm1_ham0_p8_ihires_dhires_genlock(void) +static void lts_aga_fm1_dpf1_p8_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7142,6 +11013,7 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -7151,18 +11023,35 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); - gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); } loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -7172,21 +11061,53 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); - gpix2 = get_genlock_transparency((pix2 >> 2) & 63); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); } last_bpl_pix = pix2; } shiftbpl8(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + copybpl8e(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); } loaded_pix = getbpl8_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -7225,7 +11146,27 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ham1_p8_ihires_dhires_genlock(void) +static void lts_aga_fm1_dpf1_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ihires_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ihires_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7237,6 +11178,7 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -7253,14 +11195,20 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires_genlock(void) } shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl8(); } loaded_pix = getbpl8_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -7277,17 +11225,38 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires_genlock(void) } shiftbpl8(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + copybpl8(); } loaded_pix = getbpl8_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -7326,15 +11295,11 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_kehb0_p8_ihires_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p8_ihires_dhires_genlock(void) +static void lts_aga_fm1_ham0_p8_ihires_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm1_n0_p4_ihires_dhires_spr_genlock(void) +static void lts_aga_fm1_ham1_p8_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7356,16 +11321,19 @@ static void lts_aga_fm1_n0_p4_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl8e(); } - loaded_pix = getbpl4_32(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -7386,16 +11354,19 @@ static void lts_aga_fm1_n0_p4_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; - gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + dpix_val2 = decode_ham_pixel_aga(pix2); + gpix2 = get_genlock_transparency((pix2 >> 2) & 63); } last_bpl_pix = pix2; } - shiftbpl4(); + shiftbpl8(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl8e(); } - loaded_pix = getbpl4_32(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o(); + } + loaded_pix = getbpl8_32(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -7463,7 +11434,27 @@ static void lts_aga_fm1_n0_p4_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_n1_p4_ihires_dhires_spr_genlock(void) +static void lts_aga_fm1_ham1_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p8_ihires_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ihires_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ishres_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7475,7 +11466,6 @@ static void lts_aga_fm1_n1_p4_ihires_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -7491,24 +11481,13 @@ static void lts_aga_fm1_n1_p4_ihires_dhires_spr_genlock(void) last_bpl_pix = pix0; } shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } loaded_pix = getbpl4_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } - } loaded_pixs[0] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -7524,42 +11503,16 @@ static void lts_aga_fm1_n1_p4_ihires_dhires_spr_genlock(void) last_bpl_pix = pix2; } shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } loaded_pix = getbpl4_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } - } loaded_pixs[2] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 2; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -7598,7 +11551,7 @@ static void lts_aga_fm1_n1_p4_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p4_ihires_dhires_spr_genlock(void) +static void lts_aga_fm1_n0_p4_ishres_dhires_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7610,7 +11563,6 @@ static void lts_aga_fm1_dpf0_p4_ihires_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -7620,32 +11572,38 @@ static void lts_aga_fm1_dpf0_p4_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { copybpl4(); } loaded_pix = getbpl4_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -7655,50 +11613,43 @@ static void lts_aga_fm1_dpf0_p4_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; - gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix2; } shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { copybpl4(); } loaded_pix = getbpl4_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + gpix3 = get_genlock_transparency(pix3 ^ bplcon4_denise_xor_val); } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -7737,7 +11688,7 @@ static void lts_aga_fm1_dpf0_p4_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p4_ihires_dhires_spr_genlock(void) +static void lts_aga_fm1_n1_p4_ishres_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7749,7 +11700,6 @@ static void lts_aga_fm1_dpf1_p4_ihires_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -7759,35 +11709,22 @@ static void lts_aga_fm1_dpf1_p4_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { copybpl4e(); } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { copybpl4o(); } loaded_pix = getbpl4_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } - } loaded_pixs[0] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -7797,53 +11734,25 @@ static void lts_aga_fm1_dpf1_p4_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; - gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix2; } shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { copybpl4e(); } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { copybpl4o(); } loaded_pix = getbpl4_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } - } loaded_pixs[2] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -7882,31 +11791,7 @@ static void lts_aga_fm1_dpf1_p4_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p4_ihires_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p4_ihires_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p4_ihires_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p4_ihires_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p4_ihires_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p4_ihires_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm1_n1_p4_ishres_dhires_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7918,7 +11803,6 @@ static void lts_aga_fm1_n0_p8_ihires_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -7933,22 +11817,39 @@ static void lts_aga_fm1_n0_p8_ihires_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -7961,42 +11862,46 @@ static void lts_aga_fm1_n0_p8_ihires_dhires_spr_genlock(void) dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); } - last_bpl_pix = pix2; + last_bpl_pix = pix2; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + gpix3 = get_genlock_transparency(pix3 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix3; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - loaded_pix = getbpl8_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } - loaded_pixs[2] = loaded_pix; + loaded_pix = getbpl4_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -8035,7 +11940,7 @@ static void lts_aga_fm1_n0_p8_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_n1_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm1_dpf0_p4_ishres_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8047,7 +11952,6 @@ static void lts_aga_fm1_n1_p8_ihires_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -8057,30 +11961,24 @@ static void lts_aga_fm1_n1_p8_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - } - loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -8090,48 +11988,27 @@ static void lts_aga_fm1_n1_p8_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; - gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); } last_bpl_pix = pix2; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - } - loaded_pix = getbpl8_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } + loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -8170,7 +12047,7 @@ static void lts_aga_fm1_n1_p8_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm1_dpf0_p4_ishres_dhires_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8182,7 +12059,6 @@ static void lts_aga_fm1_dpf0_p8_ihires_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -8202,22 +12078,38 @@ static void lts_aga_fm1_dpf0_p8_ihires_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } - loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl4_32(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -8237,40 +12129,43 @@ static void lts_aga_fm1_dpf0_p8_ihires_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } - loaded_pix = getbpl8_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pix = getbpl4_32(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + gpix3 = get_genlock_transparency(dpf_lookup[pix3]); } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -8309,7 +12204,7 @@ static void lts_aga_fm1_dpf0_p8_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm1_dpf1_p4_ishres_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8321,7 +12216,6 @@ static void lts_aga_fm1_dpf1_p8_ihires_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -8341,25 +12235,17 @@ static void lts_aga_fm1_dpf1_p8_ihires_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -8374,48 +12260,25 @@ static void lts_aga_fm1_dpf1_p8_ihires_dhires_spr_genlock(void) val2 += dblpfofs[bpldualpf2of]; } val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; - gpix2 = get_genlock_transparency(dpf_lookup[pix2]); - } - last_bpl_pix = pix2; - } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); - } - loaded_pix = getbpl8_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); } + last_bpl_pix = pix2; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -8454,15 +12317,7 @@ static void lts_aga_fm1_dpf1_p8_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p8_ihires_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p8_ihires_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm1_dpf1_p4_ishres_dhires_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8474,7 +12329,6 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -8484,27 +12338,54 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); - gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - loaded_pix = getbpl8_32(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -8514,45 +12395,59 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); - gpix2 = get_genlock_transparency((pix2 >> 2) & 63); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); } last_bpl_pix = pix2; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); } - loaded_pix = getbpl8_32(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } + loaded_pix = getbpl4_32(); loaded_pixs[2] = loaded_pix; - internal_pixel_cnt += 2; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + gpix3 = get_genlock_transparency(dpf_lookup[pix3]); } + last_bpl_pix = pix3; + } + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[3] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -8591,7 +12486,135 @@ static void lts_aga_fm1_ham0_p8_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ham1_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm1_ehb0_p4_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n1_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p8_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf0_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_dpf1_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb1_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham0_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ham1_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p8_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb0_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_kehb1_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_n0_p4_ishres_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8613,19 +12636,16 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); - gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } - loaded_pix = getbpl8_32(); + loaded_pix = getbpl4_32(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -8635,6 +12655,7 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires_spr_genlock(void) } } loaded_pixs[0] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -8646,19 +12667,16 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); - gpix2 = get_genlock_transparency((pix2 >> 2) & 63); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix2; } - shiftbpl8(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o(); + shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); } - loaded_pix = getbpl8_32(); + loaded_pix = getbpl4_32(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -8668,6 +12686,7 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires_spr_genlock(void) } } loaded_pixs[2] = loaded_pix; + shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -8726,15 +12745,7 @@ static void lts_aga_fm1_ham1_p8_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_kehb0_p8_ihires_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p8_ihires_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p4_ishres_dhires_genlock(void) +static void lts_aga_fm1_n0_p4_ishres_dhires_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8746,6 +12757,7 @@ static void lts_aga_fm1_n0_p4_ishres_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -8765,9 +12777,37 @@ static void lts_aga_fm1_n0_p4_ishres_dhires_genlock(void) copybpl4(); } loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -8787,12 +12827,59 @@ static void lts_aga_fm1_n0_p4_ishres_dhires_genlock(void) copybpl4(); } loaded_pix = getbpl4_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + gpix3 = get_genlock_transparency(pix3 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix3; + } shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -8831,7 +12918,7 @@ static void lts_aga_fm1_n0_p4_ishres_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_n1_p4_ishres_dhires_genlock(void) +static void lts_aga_fm1_n1_p4_ishres_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8843,6 +12930,7 @@ static void lts_aga_fm1_n1_p4_ishres_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -8865,114 +12953,18 @@ static void lts_aga_fm1_n1_p4_ishres_dhires_genlock(void) copybpl4o(); } loaded_pix = getbpl4_32(); - loaded_pixs[0] = loaded_pix; - shiftbpl4(); - internal_pixel_cnt += 2; - uae_u8 pix2 = 0; - uae_u8 gpix2 = 0xff; - uae_u32 dpix_val2 = BLANK_COLOR; - if (!denise_blank_active) { - gpix2 = get_genlock_transparency_border(); - dpix_val2 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix2 = loaded_pixs[2]; - clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; - gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); - } - last_bpl_pix = pix2; - } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { - copybpl4o(); - } - loaded_pix = getbpl4_32(); - loaded_pixs[2] = loaded_pix; - shiftbpl4(); - internal_pixel_cnt += 2; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - dtbuf[h][0] = dpix_val0; - dtgbuf[h][0] = gpix0; - dtbuf[h][2] = dpix_val2; - dtgbuf[h][2] = gpix2; - uae_u32 t0 = dtbuf[h ^ lol][0]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t0 = decode_denise_specials_debug(t0, cnt + 0); - } - #endif - *buf1++ = t0; - *buf2++ = t0; - *gbuf++ = dtgbuf[h ^ lol][0]; - uae_u32 t2 = dtbuf[h ^ lol][2]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t2 = decode_denise_specials_debug(t2, cnt + 2); - } - #endif - *buf1++ = t2; - *buf2++ = t2; - *gbuf++ = dtgbuf[h ^ lol][2]; - } - sprites_hidden = sprites_hidden2; - #ifdef DEBUGGER - *debug_dma_dhpos_odd = denise_hcounter; - #endif - denise_hcounter++; - denise_hcounter &= 511; - denise_hcounter_next++; - denise_hcounter_next &= 511; - } - denise_pixtotal++; - if (denise_pixtotal == 0) { - internal_pixel_start_cnt = internal_pixel_cnt; - } - denise_hcounter = denise_hcounter_new; - denise_cck++; - } -} -static void lts_aga_fm1_dpf0_p4_ishres_dhires_genlock(void) -{ - while (denise_cck < denise_total) { - do_denise_cck(denise_linecnt, denise_startpos, denise_cck); - if (lts_changed) return; - for (int h = 0; h < 2; h++) { - if (h) { - denise_hcounter_next = denise_hcounter_new; - } - int cnt = denise_hcounter << 2; - int cnt_next = denise_hcounter_next << 2; - if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - uae_u8 pix0 = 0; - uae_u8 gpix0 = 0xff; - uae_u32 dpix_val0 = BLANK_COLOR; - if (!denise_blank_active) { - gpix0 = get_genlock_transparency_border(); - dpix_val0 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix0 = loaded_pixs[0]; - clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; } - last_bpl_pix = pix0; - } - shiftbpl4(); - if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); } - loaded_pix = getbpl4_32(); loaded_pixs[0] = loaded_pix; shiftbpl4(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -8980,29 +12972,51 @@ static void lts_aga_fm1_dpf0_p4_ishres_dhires_genlock(void) gpix2 = get_genlock_transparency_border(); dpix_val2 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix2 = loaded_pixs[2]; - clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; - gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix2; } shiftbpl4(); if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } loaded_pix = getbpl4_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -9041,7 +13055,7 @@ static void lts_aga_fm1_dpf0_p4_ishres_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p4_ishres_dhires_genlock(void) +static void lts_aga_fm1_n1_p4_ishres_dhires_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9053,6 +13067,7 @@ static void lts_aga_fm1_dpf1_p4_ishres_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -9062,13 +13077,8 @@ static void lts_aga_fm1_dpf1_p4_ishres_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } @@ -9080,9 +13090,40 @@ static void lts_aga_fm1_dpf1_p4_ishres_dhires_genlock(void) copybpl4o(); } loaded_pix = getbpl4_32(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -9092,13 +13133,8 @@ static void lts_aga_fm1_dpf1_p4_ishres_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; - gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix2; } @@ -9110,12 +13146,62 @@ static void lts_aga_fm1_dpf1_p4_ishres_dhires_genlock(void) copybpl4o(); } loaded_pix = getbpl4_32(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + gpix3 = get_genlock_transparency(pix3 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix3; + } shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -9154,71 +13240,7 @@ static void lts_aga_fm1_dpf1_p4_ishres_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p4_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p4_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p4_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p4_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p4_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p4_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p8_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_n1_p8_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf0_p8_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_dpf1_p8_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb0_p8_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ehb1_p8_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham0_p8_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_ham1_p8_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb0_p8_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_kehb1_p8_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm1_n0_p4_ishres_dhires_spr_genlock(void) +static void lts_aga_fm1_dpf0_p4_ishres_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9240,8 +13262,13 @@ static void lts_aga_fm1_n0_p4_ishres_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } @@ -9271,8 +13298,13 @@ static void lts_aga_fm1_n0_p4_ishres_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; - gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); } last_bpl_pix = pix2; } @@ -9349,7 +13381,7 @@ static void lts_aga_fm1_n0_p4_ishres_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_n1_p4_ishres_dhires_spr_genlock(void) +static void lts_aga_fm1_dpf0_p4_ishres_dhires_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9371,17 +13403,19 @@ static void lts_aga_fm1_n1_p4_ishres_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl4(); } loaded_pix = getbpl4_32(); uae_u32 sv0 = 0; @@ -9393,7 +13427,31 @@ static void lts_aga_fm1_n1_p4_ishres_dhires_spr_genlock(void) } } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -9405,17 +13463,19 @@ static void lts_aga_fm1_n1_p4_ishres_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; - gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); } last_bpl_pix = pix2; } shiftbpl4(); if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { - copybpl4o(); + copybpl4(); } loaded_pix = getbpl4_32(); uae_u32 sv2 = 0; @@ -9427,7 +13487,31 @@ static void lts_aga_fm1_n1_p4_ishres_dhires_spr_genlock(void) } } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + gpix3 = get_genlock_transparency(dpf_lookup[pix3]); + } + last_bpl_pix = pix3; + } shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -9436,8 +13520,10 @@ static void lts_aga_fm1_n1_p4_ishres_dhires_spr_genlock(void) dpix_val0 = denise_colors.acolors[spix0]; gpix0 = get_genlock_transparency(spix0); + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; if (sv2) { @@ -9446,8 +13532,10 @@ static void lts_aga_fm1_n1_p4_ishres_dhires_spr_genlock(void) dpix_val2 = denise_colors.acolors[spix2]; gpix2 = get_genlock_transparency(spix2); + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -9486,7 +13574,7 @@ static void lts_aga_fm1_n1_p4_ishres_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf0_p4_ishres_dhires_spr_genlock(void) +static void lts_aga_fm1_dpf1_p4_ishres_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9520,7 +13608,10 @@ static void lts_aga_fm1_dpf0_p4_ishres_dhires_spr_genlock(void) } shiftbpl4(); if (bpldat_copy[0] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 0) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } loaded_pix = getbpl4_32(); uae_u32 sv0 = 0; @@ -9556,7 +13647,10 @@ static void lts_aga_fm1_dpf0_p4_ishres_dhires_spr_genlock(void) } shiftbpl4(); if (bpldat_copy[0] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[0]) { - copybpl4(); + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 2) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); } loaded_pix = getbpl4_32(); uae_u32 sv2 = 0; @@ -9627,7 +13721,7 @@ static void lts_aga_fm1_dpf0_p4_ishres_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_dpf1_p4_ishres_dhires_spr_genlock(void) +static void lts_aga_fm1_dpf1_p4_ishres_dhires_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9676,7 +13770,34 @@ static void lts_aga_fm1_dpf1_p4_ishres_dhires_spr_genlock(void) } } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 1) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -9715,7 +13836,34 @@ static void lts_aga_fm1_dpf1_p4_ishres_dhires_spr_genlock(void) } } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + gpix3 = get_genlock_transparency(dpf_lookup[pix3]); + } + last_bpl_pix = pix3; + } shiftbpl4(); + if (bpldat_copy[0] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && ((cnt | 3) & 31) == bplcon1_shift_full_masked[1]) { + copybpl4o(); + } + loaded_pix = getbpl4_32(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -9724,8 +13872,10 @@ static void lts_aga_fm1_dpf1_p4_ishres_dhires_spr_genlock(void) dpix_val0 = denise_colors.acolors[spix0]; gpix0 = get_genlock_transparency(spix0); + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; if (sv2) { @@ -9734,8 +13884,10 @@ static void lts_aga_fm1_dpf1_p4_ishres_dhires_spr_genlock(void) dpix_val2 = denise_colors.acolors[spix2]; gpix2 = get_genlock_transparency(spix2); + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -9778,66 +13930,130 @@ static void lts_aga_fm1_ehb0_p4_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p4_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p4_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham0_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p4_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham1_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p4_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p4_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_n0_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_n1_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_dpf0_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_dpf1_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham0_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham1_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p4_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -10021,6 +14237,10 @@ static void lts_aga_fm1_n0_p4_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n0_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p4_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -10248,6 +14468,10 @@ static void lts_aga_fm1_n1_p4_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n1_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p4_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -10451,6 +14675,10 @@ static void lts_aga_fm1_dpf0_p4_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p4_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -10698,30 +14926,58 @@ static void lts_aga_fm1_dpf1_p4_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p4_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p4_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p4_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham0_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p4_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham1_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p4_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p4_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p8_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -10905,6 +15161,10 @@ static void lts_aga_fm1_n0_p8_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n0_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p8_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -11132,6 +15392,10 @@ static void lts_aga_fm1_n1_p8_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n1_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p8_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -11335,6 +15599,10 @@ static void lts_aga_fm1_dpf0_p8_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p8_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -11582,14 +15850,26 @@ static void lts_aga_fm1_dpf1_p8_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p8_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p8_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p8_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -11773,6 +16053,10 @@ static void lts_aga_fm1_ham0_p8_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_ham0_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p8_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -12000,14 +16284,26 @@ static void lts_aga_fm1_ham1_p8_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_ham1_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p8_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p8_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p4_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -12259,6 +16555,10 @@ static void lts_aga_fm1_n0_p4_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n0_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p4_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -12554,6 +16854,10 @@ static void lts_aga_fm1_n1_p4_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n1_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p4_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -12825,6 +17129,10 @@ static void lts_aga_fm1_dpf0_p4_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p4_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -13140,30 +17448,58 @@ static void lts_aga_fm1_dpf1_p4_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p4_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p4_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p4_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham0_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p4_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham1_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p4_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p4_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p8_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -13415,6 +17751,10 @@ static void lts_aga_fm1_n0_p8_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n0_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p8_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -13710,6 +18050,10 @@ static void lts_aga_fm1_n1_p8_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n1_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p8_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -13981,6 +18325,10 @@ static void lts_aga_fm1_dpf0_p8_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p8_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -14296,7 +18644,15 @@ static void lts_aga_fm1_dpf1_p8_ilores_dshres_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm1_ehb0_p8_ilores_dshres_spr_genlock(void) +static void lts_aga_fm1_dpf1_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ilores_dshres_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm1_ehb0_p8_ilores_dshres_spr_filtered_genlock(void) { lts_null(); } @@ -14304,6 +18660,10 @@ static void lts_aga_fm1_ehb1_p8_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p8_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -14555,6 +18915,10 @@ static void lts_aga_fm1_ham0_p8_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_ham0_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p8_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -14850,14 +19214,26 @@ static void lts_aga_fm1_ham1_p8_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_ham1_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p8_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p8_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p4_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -15041,6 +19417,10 @@ static void lts_aga_fm1_n0_p4_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p4_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -15268,6 +19648,10 @@ static void lts_aga_fm1_n1_p4_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p4_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -15471,6 +19855,10 @@ static void lts_aga_fm1_dpf0_p4_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p4_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -15718,30 +20106,58 @@ static void lts_aga_fm1_dpf1_p4_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p8_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -15925,6 +20341,10 @@ static void lts_aga_fm1_n0_p8_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n0_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p8_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -16152,6 +20572,10 @@ static void lts_aga_fm1_n1_p8_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n1_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p8_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -16355,6 +20779,10 @@ static void lts_aga_fm1_dpf0_p8_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p8_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -16602,14 +21030,26 @@ static void lts_aga_fm1_dpf1_p8_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p8_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p8_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p8_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -16793,6 +21233,10 @@ static void lts_aga_fm1_ham0_p8_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_ham0_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p8_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -17020,14 +21464,26 @@ static void lts_aga_fm1_ham1_p8_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_ham1_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p8_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p8_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p4_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -17279,6 +21735,10 @@ static void lts_aga_fm1_n0_p4_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p4_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -17574,6 +22034,10 @@ static void lts_aga_fm1_n1_p4_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p4_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -17845,6 +22309,10 @@ static void lts_aga_fm1_dpf0_p4_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p4_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -18160,30 +22628,58 @@ static void lts_aga_fm1_dpf1_p4_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p8_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -18435,6 +22931,10 @@ static void lts_aga_fm1_n0_p8_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n0_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p8_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -18730,6 +23230,10 @@ static void lts_aga_fm1_n1_p8_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n1_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p8_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -19001,6 +23505,10 @@ static void lts_aga_fm1_dpf0_p8_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p8_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -19316,14 +23824,26 @@ static void lts_aga_fm1_dpf1_p8_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p8_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p8_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p8_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -19575,6 +24095,10 @@ static void lts_aga_fm1_ham0_p8_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_ham0_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p8_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -19870,14 +24394,26 @@ static void lts_aga_fm1_ham1_p8_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_ham1_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p8_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p8_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p4_ishres_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -20037,6 +24573,10 @@ static void lts_aga_fm1_n0_p4_ishres_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n0_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p4_ishres_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -20208,6 +24748,10 @@ static void lts_aga_fm1_n1_p4_ishres_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n1_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p4_ishres_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -20387,6 +24931,10 @@ static void lts_aga_fm1_dpf0_p4_ishres_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p4_ishres_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -20578,70 +25126,138 @@ static void lts_aga_fm1_dpf1_p4_ishres_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham0_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham1_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_n0_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_n1_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_dpf0_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_dpf1_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham0_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham1_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p4_ishres_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -20869,6 +25485,10 @@ static void lts_aga_fm1_n0_p4_ishres_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n0_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p4_ishres_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -21108,6 +25728,10 @@ static void lts_aga_fm1_n1_p4_ishres_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_n1_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p4_ishres_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -21355,6 +25979,10 @@ static void lts_aga_fm1_dpf0_p4_ishres_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf0_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p4_ishres_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -21614,67 +26242,135 @@ static void lts_aga_fm1_dpf1_p4_ishres_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm1_dpf1_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham0_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham1_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n0_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_n0_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_n1_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_n1_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf0_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_dpf0_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_dpf1_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_dpf1_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb0_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb0_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ehb1_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ehb1_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham0_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham0_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_ham1_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_ham1_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb0_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb0_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm1_kehb1_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm1_kehb1_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} diff --git a/linetoscr_aga_fm2.cpp b/linetoscr_aga_fm2.cpp index dde13737..f51bdb8e 100644 --- a/linetoscr_aga_fm2.cpp +++ b/linetoscr_aga_fm2.cpp @@ -62,6 +62,10 @@ static void lts_aga_fm2_n0_p2_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_n0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p2_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -123,6 +127,10 @@ static void lts_aga_fm2_n1_p2_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_n1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p2_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -186,6 +194,10 @@ static void lts_aga_fm2_dpf0_p2_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p2_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -252,30 +264,58 @@ static void lts_aga_fm2_dpf1_p2_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p2_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p2_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p2_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm2_ham0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p2_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm2_ham1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p2_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p2_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p4_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -334,6 +374,10 @@ static void lts_aga_fm2_n0_p4_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_n0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p4_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -395,6 +439,10 @@ static void lts_aga_fm2_n1_p4_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_n1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p4_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -458,6 +506,10 @@ static void lts_aga_fm2_dpf0_p4_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p4_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -524,30 +576,58 @@ static void lts_aga_fm2_dpf1_p4_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p4_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p4_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p4_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm2_ham0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p4_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm2_ham1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p4_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p4_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -606,6 +686,10 @@ static void lts_aga_fm2_n0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_n0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -667,6 +751,10 @@ static void lts_aga_fm2_n1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_n1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -730,6 +818,10 @@ static void lts_aga_fm2_dpf0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -796,6 +888,10 @@ static void lts_aga_fm2_dpf1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -860,6 +956,10 @@ static void lts_aga_fm2_ehb0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_ehb0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -927,6 +1027,10 @@ static void lts_aga_fm2_ehb1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_ehb1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -985,6 +1089,10 @@ static void lts_aga_fm2_ham0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1046,6 +1154,10 @@ static void lts_aga_fm2_ham1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1105,6 +1217,10 @@ static void lts_aga_fm2_kehb0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_kehb0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1167,6 +1283,10 @@ static void lts_aga_fm2_kehb1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_kehb1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p8_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1225,6 +1345,10 @@ static void lts_aga_fm2_n0_p8_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_n0_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p8_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1286,6 +1410,10 @@ static void lts_aga_fm2_n1_p8_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_n1_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p8_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1349,6 +1477,10 @@ static void lts_aga_fm2_dpf0_p8_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p8_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1415,14 +1547,26 @@ static void lts_aga_fm2_dpf1_p8_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p8_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p8_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p8_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1481,6 +1625,10 @@ static void lts_aga_fm2_ham0_p8_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p8_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1542,14 +1690,26 @@ static void lts_aga_fm2_ham1_p8_ilores_dlores(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p8_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p8_ilores_dlores(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p8_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p2_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1623,6 +1783,10 @@ static void lts_aga_fm2_n0_p2_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_n0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p2_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1699,6 +1863,10 @@ static void lts_aga_fm2_n1_p2_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_n1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p2_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1777,6 +1945,10 @@ static void lts_aga_fm2_dpf0_p2_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p2_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1858,30 +2030,58 @@ static void lts_aga_fm2_dpf1_p2_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm2_ham0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm2_ham1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p4_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1955,6 +2155,10 @@ static void lts_aga_fm2_n0_p4_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_n0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p4_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2031,6 +2235,10 @@ static void lts_aga_fm2_n1_p4_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_n1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p4_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2109,6 +2317,10 @@ static void lts_aga_fm2_dpf0_p4_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p4_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2190,30 +2402,58 @@ static void lts_aga_fm2_dpf1_p4_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm2_ham0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm2_ham1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2287,6 +2527,10 @@ static void lts_aga_fm2_n0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_n0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2363,6 +2607,10 @@ static void lts_aga_fm2_n1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_n1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2441,6 +2689,10 @@ static void lts_aga_fm2_dpf0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2522,6 +2774,10 @@ static void lts_aga_fm2_dpf1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2601,6 +2857,10 @@ static void lts_aga_fm2_ehb0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_ehb0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2683,6 +2943,10 @@ static void lts_aga_fm2_ehb1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_ehb1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2756,6 +3020,10 @@ static void lts_aga_fm2_ham0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2832,6 +3100,10 @@ static void lts_aga_fm2_ham1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2906,6 +3178,10 @@ static void lts_aga_fm2_kehb0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_kehb0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2983,6 +3259,10 @@ static void lts_aga_fm2_kehb1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_kehb1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p8_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3056,6 +3336,10 @@ static void lts_aga_fm2_n0_p8_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_n0_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p8_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3132,6 +3416,10 @@ static void lts_aga_fm2_n1_p8_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_n1_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p8_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3210,6 +3498,10 @@ static void lts_aga_fm2_dpf0_p8_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p8_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3291,14 +3583,26 @@ static void lts_aga_fm2_dpf1_p8_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p8_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p8_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p8_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3372,6 +3676,10 @@ static void lts_aga_fm2_ham0_p8_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p8_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3448,14 +3756,26 @@ static void lts_aga_fm2_ham1_p8_ilores_dlores_spr(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p8_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p8_ilores_dlores_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p8_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p2_ihires_dlores(void) { while (denise_cck < denise_total) { @@ -3515,7 +3835,7 @@ static void lts_aga_fm2_n0_p2_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_n1_p2_ihires_dlores(void) +static void lts_aga_fm2_n0_p2_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3540,16 +3860,30 @@ static void lts_aga_fm2_n1_p2_ihires_dlores(void) } shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl2o_64(); + copybpl2_64(); } loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -3577,7 +3911,7 @@ static void lts_aga_fm2_n1_p2_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p2_ihires_dlores(void) +static void lts_aga_fm2_n1_p2_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3596,18 +3930,16 @@ static void lts_aga_fm2_dpf0_p2_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2_64(); + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); } loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; @@ -3641,7 +3973,7 @@ static void lts_aga_fm2_dpf0_p2_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p2_ihires_dlores(void) +static void lts_aga_fm2_n1_p2_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3660,12 +3992,7 @@ static void lts_aga_fm2_dpf1_p2_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } @@ -3678,9 +4005,29 @@ static void lts_aga_fm2_dpf1_p2_ihires_dlores(void) } loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -3708,31 +4055,7 @@ static void lts_aga_fm2_dpf1_p2_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p4_ihires_dlores(void) +static void lts_aga_fm2_dpf0_p2_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3751,17 +4074,22 @@ static void lts_aga_fm2_n0_p4_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl2_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + shiftbpl2_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -3791,7 +4119,7 @@ static void lts_aga_fm2_n0_p4_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_n1_p4_ihires_dlores(void) +static void lts_aga_fm2_dpf0_p2_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3810,22 +4138,46 @@ static void lts_aga_fm2_n1_p4_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + copybpl2_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -3853,7 +4205,7 @@ static void lts_aga_fm2_n1_p4_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p4_ihires_dlores(void) +static void lts_aga_fm2_dpf1_p2_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3881,13 +4233,16 @@ static void lts_aga_fm2_dpf0_p4_ihires_dlores(void) } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl2e_64(); } - loaded_pix = getbpl4_64(); + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + shiftbpl2_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -3917,7 +4272,7 @@ static void lts_aga_fm2_dpf0_p4_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p4_ihires_dlores(void) +static void lts_aga_fm2_dpf1_p2_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3945,18 +4300,43 @@ static void lts_aga_fm2_dpf1_p4_ihires_dlores(void) } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); + copybpl2e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + copybpl2o_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -3984,31 +4364,55 @@ static void lts_aga_fm2_dpf1_p4_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p4_ihires_dlores(void) +static void lts_aga_fm2_ehb0_p2_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p4_ihires_dlores(void) +static void lts_aga_fm2_ehb0_p2_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm2_ham0_p4_ihires_dlores(void) +static void lts_aga_fm2_ehb1_p2_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm2_ham1_p4_ihires_dlores(void) +static void lts_aga_fm2_ehb1_p2_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm2_kehb0_p4_ihires_dlores(void) +static void lts_aga_fm2_ham0_p2_ihires_dlores(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p4_ihires_dlores(void) +static void lts_aga_fm2_ham0_p2_ihires_dlores_filtered(void) { lts_null(); } -static void lts_aga_fm2_n0_p6_ihires_dlores(void) +static void lts_aga_fm2_ham1_p2_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p2_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p2_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p2_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p2_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p2_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4031,13 +4435,13 @@ static void lts_aga_fm2_n0_p6_ihires_dlores(void) } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl4_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + shiftbpl4_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -4067,7 +4471,7 @@ static void lts_aga_fm2_n0_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_n1_p6_ihires_dlores(void) +static void lts_aga_fm2_n0_p4_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4090,18 +4494,32 @@ static void lts_aga_fm2_n1_p6_ihires_dlores(void) } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl4_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4129,7 +4547,7 @@ static void lts_aga_fm2_n1_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p6_ihires_dlores(void) +static void lts_aga_fm2_n1_p4_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4148,22 +4566,20 @@ static void lts_aga_fm2_dpf0_p6_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl4e_64(); } - loaded_pix = getbpl6_64(); + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + shiftbpl4_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -4193,7 +4609,7 @@ static void lts_aga_fm2_dpf0_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p6_ihires_dlores(void) +static void lts_aga_fm2_n1_p4_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4212,27 +4628,42 @@ static void lts_aga_fm2_dpf1_p6_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + copybpl4e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl4o_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4260,7 +4691,7 @@ static void lts_aga_fm2_dpf1_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p6_ihires_dlores(void) +static void lts_aga_fm2_dpf0_p4_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4279,23 +4710,22 @@ static void lts_aga_fm2_ehb0_p6_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl4_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + shiftbpl4_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -4325,7 +4755,7 @@ static void lts_aga_fm2_ehb0_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_ehb1_p6_ihires_dlores(void) +static void lts_aga_fm2_dpf0_p4_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4344,28 +4774,46 @@ static void lts_aga_fm2_ehb1_p6_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl4_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4393,7 +4841,7 @@ static void lts_aga_fm2_ehb1_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_ham0_p6_ihires_dlores(void) +static void lts_aga_fm2_dpf1_p4_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4412,32 +4860,25 @@ static void lts_aga_fm2_ham0_p6_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); - } - loaded_pix = getbpl6_64(); - loaded_pixs[0] = loaded_pix; - uae_u8 pix1 = 0; - uae_u32 dpix_val1 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val1 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); - } - last_bpl_pix = pix1; + copybpl4e_64(); } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); } - loaded_pix = getbpl6_64(); - loaded_pixs[1] = loaded_pix; + loaded_pix = getbpl4_64(); + loaded_pixs[0] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -4467,7 +4908,7 @@ static void lts_aga_fm2_ham0_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p6_ihires_dlores(void) +static void lts_aga_fm2_dpf1_p4_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4486,18 +4927,23 @@ static void lts_aga_fm2_ham1_p6_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + copybpl4e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl4o_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; uae_u8 pix1 = 0; uae_u32 dpix_val1 = BLANK_COLOR; @@ -4505,21 +4951,28 @@ static void lts_aga_fm2_ham1_p6_ihires_dlores(void) dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + copybpl4e_64(); } if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl4o_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4547,7 +5000,55 @@ static void lts_aga_fm2_ham1_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p6_ihires_dlores(void) +static void lts_aga_fm2_ehb0_p4_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4566,8 +5067,7 @@ static void lts_aga_fm2_kehb0_p6_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } @@ -4607,7 +5107,7 @@ static void lts_aga_fm2_kehb0_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_kehb1_p6_ihires_dlores(void) +static void lts_aga_fm2_n0_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4626,23 +5126,36 @@ static void lts_aga_fm2_kehb1_p6_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl6_64(); } loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4670,7 +5183,7 @@ static void lts_aga_fm2_kehb1_p6_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_n0_p8_ihires_dlores(void) +static void lts_aga_fm2_n1_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4693,13 +5206,16 @@ static void lts_aga_fm2_n0_p8_ihires_dlores(void) } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl6e_64(); } - loaded_pix = getbpl8_64(); + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; - shiftbpl8_64(); + shiftbpl6_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -4729,7 +5245,7 @@ static void lts_aga_fm2_n0_p8_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_n1_p8_ihires_dlores(void) +static void lts_aga_fm2_n1_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4752,18 +5268,38 @@ static void lts_aga_fm2_n1_p8_ihires_dlores(void) } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl6e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl6o_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; - shiftbpl8_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4791,7 +5327,7 @@ static void lts_aga_fm2_n1_p8_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p8_ihires_dlores(void) +static void lts_aga_fm2_dpf0_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4819,13 +5355,13 @@ static void lts_aga_fm2_dpf0_p8_ihires_dlores(void) } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl6_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; - shiftbpl8_64(); + shiftbpl6_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -4855,7 +5391,7 @@ static void lts_aga_fm2_dpf0_p8_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p8_ihires_dlores(void) +static void lts_aga_fm2_dpf0_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4883,18 +5419,37 @@ static void lts_aga_fm2_dpf1_p8_ihires_dlores(void) } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl6_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; - shiftbpl8_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -4922,15 +5477,7 @@ static void lts_aga_fm2_dpf1_p8_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p8_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p8_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p8_ihires_dlores(void) +static void lts_aga_fm2_dpf1_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4949,32 +5496,25 @@ static void lts_aga_fm2_ham0_p8_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); - } - loaded_pix = getbpl8_64(); - loaded_pixs[0] = loaded_pix; - uae_u8 pix1 = 0; - uae_u32 dpix_val1 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val1 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); - } - last_bpl_pix = pix1; + copybpl6e_64(); } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } - loaded_pix = getbpl8_64(); - loaded_pixs[1] = loaded_pix; + loaded_pix = getbpl6_64(); + loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -5004,7 +5544,7 @@ static void lts_aga_fm2_ham0_p8_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p8_ihires_dlores(void) +static void lts_aga_fm2_dpf1_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5023,18 +5563,23 @@ static void lts_aga_fm2_ham1_p8_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl6e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl6o_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; uae_u8 pix1 = 0; uae_u32 dpix_val1 = BLANK_COLOR; @@ -5042,21 +5587,28 @@ static void lts_aga_fm2_ham1_p8_ihires_dlores(void) dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl6e_64(); } if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl6o_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl6_64(); loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5084,15 +5636,7 @@ static void lts_aga_fm2_ham1_p8_ihires_dlores(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p8_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p8_ihires_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p2_ihires_dlores_spr(void) +static void lts_aga_fm2_ehb0_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5104,7 +5648,6 @@ static void lts_aga_fm2_n0_p2_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5112,33 +5655,25 @@ static void lts_aga_fm2_n0_p2_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } } last_bpl_pix = pix0; } - shiftbpl2_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2_64(); - } - loaded_pix = getbpl2_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + copybpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; - shiftbpl2_64(); + shiftbpl6_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5166,7 +5701,7 @@ static void lts_aga_fm2_n0_p2_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_n1_p2_ihires_dlores_spr(void) +static void lts_aga_fm2_ehb0_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5178,7 +5713,6 @@ static void lts_aga_fm2_n1_p2_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5186,36 +5720,48 @@ static void lts_aga_fm2_n1_p2_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } } last_bpl_pix = pix0; } - shiftbpl2_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl2o_64(); + copybpl6_64(); } - loaded_pix = getbpl2_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl6_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + if (!(pix1 & 0x20)) { + dpix_val1 = denise_colors.acolors[pix1]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix1 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val1 = CONVERT_RGB(v); + } } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; - shiftbpl2_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5243,7 +5789,7 @@ static void lts_aga_fm2_n1_p2_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p2_ihires_dlores_spr(void) +static void lts_aga_fm2_ehb1_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5255,7 +5801,6 @@ static void lts_aga_fm2_dpf0_p2_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5263,38 +5808,28 @@ static void lts_aga_fm2_dpf0_p2_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl2_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2_64(); + copybpl6e_64(); } - loaded_pix = getbpl2_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; - shiftbpl2_64(); + shiftbpl6_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5322,7 +5857,7 @@ static void lts_aga_fm2_dpf0_p2_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p2_ihires_dlores_spr(void) +static void lts_aga_fm2_ehb1_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5334,7 +5869,6 @@ static void lts_aga_fm2_dpf1_p2_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5342,41 +5876,54 @@ static void lts_aga_fm2_dpf1_p2_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl2_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2e_64(); + copybpl6e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl2o_64(); + copybpl6o_64(); } - loaded_pix = getbpl2_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl6_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + if (!(pix1 & 0x20)) { + dpix_val1 = denise_colors.acolors[pix1]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix1 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val1 = CONVERT_RGB(v); + } } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; - shiftbpl2_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5404,31 +5951,7 @@ static void lts_aga_fm2_dpf1_p2_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p4_ihires_dlores_spr(void) +static void lts_aga_fm2_ham0_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5440,7 +5963,6 @@ static void lts_aga_fm2_n0_p4_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5448,33 +5970,34 @@ static void lts_aga_fm2_n0_p4_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl6_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl6_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5502,7 +6025,7 @@ static void lts_aga_fm2_n0_p4_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_n1_p4_ihires_dlores_spr(void) +static void lts_aga_fm2_ham0_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5514,7 +6037,6 @@ static void lts_aga_fm2_n1_p4_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5522,36 +6044,36 @@ static void lts_aga_fm2_n1_p4_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + copybpl6_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl6_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5579,7 +6101,7 @@ static void lts_aga_fm2_n1_p4_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p4_ihires_dlores_spr(void) +static void lts_aga_fm2_ham1_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5591,7 +6113,6 @@ static void lts_aga_fm2_dpf0_p4_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5599,38 +6120,40 @@ static void lts_aga_fm2_dpf0_p4_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl6e_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5658,7 +6181,7 @@ static void lts_aga_fm2_dpf0_p4_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p4_ihires_dlores_spr(void) +static void lts_aga_fm2_ham1_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5670,7 +6193,6 @@ static void lts_aga_fm2_dpf1_p4_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5678,43 +6200,44 @@ static void lts_aga_fm2_dpf1_p4_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); + copybpl6e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); - } - loaded_pix = getbpl4_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + copybpl6o_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); - internal_pixel_cnt += 4; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); } - dtbuf[h][0] = dpix_val0; - uae_u32 t0 = dtbuf[h ^ lol][0]; + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER if (decode_specials_debug) { t0 = decode_denise_specials_debug(t0, cnt + 0); @@ -5740,31 +6263,7 @@ static void lts_aga_fm2_dpf1_p4_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p4_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p4_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p4_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p4_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p4_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p4_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p6_ihires_dlores_spr(void) +static void lts_aga_fm2_kehb0_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5776,7 +6275,6 @@ static void lts_aga_fm2_n0_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5784,7 +6282,8 @@ static void lts_aga_fm2_n0_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } @@ -5793,24 +6292,10 @@ static void lts_aga_fm2_n0_p6_ihires_dlores_spr(void) copybpl6_64(); } loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } - } loaded_pixs[0] = loaded_pix; shiftbpl6_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5838,7 +6323,7 @@ static void lts_aga_fm2_n0_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_n1_p6_ihires_dlores_spr(void) +static void lts_aga_fm2_kehb0_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5850,7 +6335,6 @@ static void lts_aga_fm2_n1_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5858,36 +6342,38 @@ static void lts_aga_fm2_n1_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl6_64(); } loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[pix1 & 31]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5915,7 +6401,7 @@ static void lts_aga_fm2_n1_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p6_ihires_dlores_spr(void) +static void lts_aga_fm2_kehb1_p6_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5927,7 +6413,6 @@ static void lts_aga_fm2_dpf0_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -5935,38 +6420,23 @@ static void lts_aga_fm2_dpf0_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl6e_64(); } - loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; shiftbpl6_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -5994,7 +6464,7 @@ static void lts_aga_fm2_dpf0_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p6_ihires_dlores_spr(void) +static void lts_aga_fm2_kehb1_p6_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6006,7 +6476,6 @@ static void lts_aga_fm2_dpf1_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6014,12 +6483,8 @@ static void lts_aga_fm2_dpf1_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } @@ -6031,24 +6496,31 @@ static void lts_aga_fm2_dpf1_p6_ihires_dlores_spr(void) copybpl6o_64(); } loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[pix1 & 31]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6076,7 +6548,7 @@ static void lts_aga_fm2_dpf1_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p6_ihires_dlores_spr(void) +static void lts_aga_fm2_n0_p8_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6088,7 +6560,6 @@ static void lts_aga_fm2_ehb0_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6096,39 +6567,19 @@ static void lts_aga_fm2_ehb0_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); - } + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); - } - loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + copybpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + shiftbpl8_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6156,7 +6607,7 @@ static void lts_aga_fm2_ehb0_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb1_p6_ihires_dlores_spr(void) +static void lts_aga_fm2_n0_p8_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6168,7 +6619,6 @@ static void lts_aga_fm2_ehb1_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6176,42 +6626,36 @@ static void lts_aga_fm2_ehb1_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); - } + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl8_64(); } - loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl8_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6239,7 +6683,7 @@ static void lts_aga_fm2_ehb1_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_ham0_p6_ihires_dlores_spr(void) +static void lts_aga_fm2_n1_p8_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6251,7 +6695,6 @@ static void lts_aga_fm2_ham0_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6259,48 +6702,22 @@ static void lts_aga_fm2_ham0_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl8e_64(); } - loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; - uae_u8 pix1 = 0; - uae_u32 dpix_val1 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val1 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); - } - last_bpl_pix = pix1; - } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); - } - loaded_pix = getbpl6_64(); - loaded_pixs[1] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6328,7 +6745,7 @@ static void lts_aga_fm2_ham0_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p6_ihires_dlores_spr(void) +static void lts_aga_fm2_n1_p8_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6340,7 +6757,6 @@ static void lts_aga_fm2_ham1_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6348,26 +6764,18 @@ static void lts_aga_fm2_ham1_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + copybpl8e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); - } - loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + copybpl8o_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; uae_u8 pix1 = 0; uae_u32 dpix_val1 = BLANK_COLOR; @@ -6375,27 +6783,23 @@ static void lts_aga_fm2_ham1_p6_ihires_dlores_spr(void) dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix1; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + copybpl8e_64(); } if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl8o_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl8_64(); loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6423,7 +6827,7 @@ static void lts_aga_fm2_ham1_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p6_ihires_dlores_spr(void) +static void lts_aga_fm2_dpf0_p8_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6435,7 +6839,6 @@ static void lts_aga_fm2_kehb0_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6443,34 +6846,24 @@ static void lts_aga_fm2_kehb0_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); - } - loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + copybpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + shiftbpl8_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6498,7 +6891,7 @@ static void lts_aga_fm2_kehb0_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_kehb1_p6_ihires_dlores_spr(void) +static void lts_aga_fm2_dpf0_p8_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6510,7 +6903,6 @@ static void lts_aga_fm2_kehb1_p6_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6518,37 +6910,46 @@ static void lts_aga_fm2_kehb1_p6_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl8_64(); } - loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl8_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6576,7 +6977,7 @@ static void lts_aga_fm2_kehb1_p6_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_n0_p8_ihires_dlores_spr(void) +static void lts_aga_fm2_dpf1_p8_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6588,7 +6989,6 @@ static void lts_aga_fm2_n0_p8_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6596,33 +6996,27 @@ static void lts_aga_fm2_n0_p8_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); } - loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; shiftbpl8_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6650,7 +7044,7 @@ static void lts_aga_fm2_n0_p8_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_n1_p8_ihires_dlores_spr(void) +static void lts_aga_fm2_dpf1_p8_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6662,7 +7056,6 @@ static void lts_aga_fm2_n1_p8_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6670,7 +7063,12 @@ static void lts_aga_fm2_n1_p8_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } @@ -6682,24 +7080,35 @@ static void lts_aga_fm2_n1_p8_ihires_dlores_spr(void) copybpl8o_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6727,7 +7136,23 @@ static void lts_aga_fm2_n1_p8_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p8_ihires_dlores_spr(void) +static void lts_aga_fm2_ehb0_p8_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6739,7 +7164,6 @@ static void lts_aga_fm2_dpf0_p8_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6747,12 +7171,7 @@ static void lts_aga_fm2_dpf0_p8_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } @@ -6761,24 +7180,181 @@ static void lts_aga_fm2_dpf0_p8_ihires_dlores_spr(void) copybpl8_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham0_p8_ihires_dlores_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham1_p8_ihires_dlores(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6806,7 +7382,7 @@ static void lts_aga_fm2_dpf0_p8_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p8_ihires_dlores_spr(void) +static void lts_aga_fm2_ham1_p8_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6818,7 +7394,6 @@ static void lts_aga_fm2_dpf1_p8_ihires_dlores_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -6826,12 +7401,7 @@ static void lts_aga_fm2_dpf1_p8_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } @@ -6843,6 +7413,102 @@ static void lts_aga_fm2_dpf1_p8_ihires_dlores_spr(void) copybpl8o_64(); } loaded_pix = getbpl8_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_kehb0_p8_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p8_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ihires_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p2_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + } + loaded_pix = getbpl2_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -6852,7 +7518,7 @@ static void lts_aga_fm2_dpf1_p8_ihires_dlores_spr(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl8_64(); + shiftbpl2_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -6888,15 +7554,7 @@ static void lts_aga_fm2_dpf1_p8_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p8_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p8_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p8_ihires_dlores_spr(void) +static void lts_aga_fm2_n0_p2_ihires_dlores_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6916,15 +7574,15 @@ static void lts_aga_fm2_ham0_p8_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl2_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl2_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -6940,15 +7598,16 @@ static void lts_aga_fm2_ham0_p8_ihires_dlores_spr(void) dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix1; } - shiftbpl8_64(); + shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl2_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl2_64(); loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -6956,8 +7615,10 @@ static void lts_aga_fm2_ham0_p8_ihires_dlores_spr(void) uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -6985,7 +7646,7 @@ static void lts_aga_fm2_ham0_p8_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p8_ihires_dlores_spr(void) +static void lts_aga_fm2_n1_p2_ihires_dlores_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7005,18 +7666,95 @@ static void lts_aga_fm2_ham1_p8_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl2e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl2o_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl2_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl2_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p2_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -7032,18 +7770,19 @@ static void lts_aga_fm2_ham1_p8_ihires_dlores_spr(void) dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix1; } - shiftbpl8_64(); + shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl2e_64(); } if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl2o_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl2_64(); loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -7051,8 +7790,10 @@ static void lts_aga_fm2_ham1_p8_ihires_dlores_spr(void) uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -7080,335 +7821,11322 @@ static void lts_aga_fm2_ham1_p8_ihires_dlores_spr(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p8_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p8_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p2_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_n1_p2_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_dpf0_p2_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_dpf1_p2_ishres_dlores(void) +static void lts_aga_fm2_dpf0_p2_ihires_dlores_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + } + loaded_pix = getbpl2_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl2_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_ehb0_p2_ishres_dlores(void) +static void lts_aga_fm2_dpf0_p2_ihires_dlores_spr_filtered(void) { - lts_null(); -} -static void lts_aga_fm2_ehb1_p2_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p2_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p2_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p2_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p2_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p4_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_n1_p4_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_dpf0_p4_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_dpf1_p4_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb0_p4_ishres_dlores(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p4_ishres_dlores(void) -{ - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + } + loaded_pix = getbpl2_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_ham0_p4_ishres_dlores(void) +static void lts_aga_fm2_dpf1_p2_ihires_dlores_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl2_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_ham1_p4_ishres_dlores(void) +static void lts_aga_fm2_dpf1_p2_ihires_dlores_spr_filtered(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_kehb0_p4_ishres_dlores(void) +static void lts_aga_fm2_ehb0_p2_ihires_dlores_spr(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p4_ishres_dlores(void) +static void lts_aga_fm2_ehb0_p2_ihires_dlores_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_n0_p6_ishres_dlores(void) +static void lts_aga_fm2_ehb1_p2_ihires_dlores_spr(void) { lts_null(); } -static void lts_aga_fm2_n1_p6_ishres_dlores(void) +static void lts_aga_fm2_ehb1_p2_ihires_dlores_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_dpf0_p6_ishres_dlores(void) +static void lts_aga_fm2_ham0_p2_ihires_dlores_spr(void) { lts_null(); } -static void lts_aga_fm2_dpf1_p6_ishres_dlores(void) +static void lts_aga_fm2_ham0_p2_ihires_dlores_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ehb0_p6_ishres_dlores(void) +static void lts_aga_fm2_ham1_p2_ihires_dlores_spr(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p6_ishres_dlores(void) +static void lts_aga_fm2_ham1_p2_ihires_dlores_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ham0_p6_ishres_dlores(void) +static void lts_aga_fm2_kehb0_p2_ihires_dlores_spr(void) { lts_null(); } -static void lts_aga_fm2_ham1_p6_ishres_dlores(void) +static void lts_aga_fm2_kehb0_p2_ihires_dlores_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_kehb0_p6_ishres_dlores(void) +static void lts_aga_fm2_kehb1_p2_ihires_dlores_spr(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p6_ishres_dlores(void) +static void lts_aga_fm2_kehb1_p2_ihires_dlores_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_n0_p8_ishres_dlores(void) +static void lts_aga_fm2_n0_p4_ihires_dlores_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_n1_p8_ishres_dlores(void) +static void lts_aga_fm2_n0_p4_ihires_dlores_spr_filtered(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_dpf0_p8_ishres_dlores(void) +static void lts_aga_fm2_n1_p4_ihires_dlores_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p4_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p4_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p4_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p4_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p4_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ehb0_p4_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n0_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ehb0_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ehb0_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + if (!(pix1 & 0x20)) { + dpix_val1 = denise_colors.acolors[pix1]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix1 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val1 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ehb1_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ehb1_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + if (!(pix1 & 0x20)) { + dpix_val1 = denise_colors.acolors[pix1]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix1 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val1 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham0_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham0_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham1_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham1_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_kehb0_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_kehb0_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[pix1 & 31]; + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_kehb1_p6_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_kehb1_p6_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[pix1 & 31]; + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n0_p8_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n0_p8_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p8_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p8_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p8_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p8_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p8_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p8_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ehb0_p8_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham0_p8_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham1_p8_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham1_p8_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_kehb0_p8_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p8_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ihires_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p2_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p2_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p6_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p6_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ishres_dlores(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ishres_dlores_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p2_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p2_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p6_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p6_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ishres_dlores_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ishres_dlores_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p2_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2_64(); + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2_64(); + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n0_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p2_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2e_64(); + loaded_pix = getbpl2_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl2o_64(); + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl2_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2e_64(); + loaded_pix = getbpl2_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl2o_64(); + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl2_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p2_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2_64(); + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2_64(); + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p2_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2e_64(); + loaded_pix = getbpl2_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl2o_64(); + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl2_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2e_64(); + loaded_pix = getbpl2_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl2o_64(); + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl2_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p2_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p2_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p2_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p2_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p2_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p2_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n0_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p4_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e_64(); + loaded_pix = getbpl4_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e_64(); + loaded_pix = getbpl4_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p4_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p4_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e_64(); + loaded_pix = getbpl4_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e_64(); + loaded_pix = getbpl4_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + pix2 ^= bplcon4_denise_xor_val; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ehb0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + pix2 ^= bplcon4_denise_xor_val; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ehb1_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = decode_ham_pixel_aga(pix2); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = decode_ham_pixel_aga(pix2); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham1_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_kehb0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p6_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_kehb1_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n0_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p8_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p8_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p8_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = decode_ham_pixel_aga(pix2); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham0_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p8_ilores_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = decode_ham_pixel_aga(pix2); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham1_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p8_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ilores_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p2_ilores_dhires_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2_64(); + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2_64(); + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n0_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p2_ilores_dhires_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2e_64(); + loaded_pix = getbpl2_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl2o_64(); + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl2_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2e_64(); + loaded_pix = getbpl2_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl2o_64(); + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl2_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p2_ilores_dhires_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2_64(); + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2_64(); + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p2_ilores_dhires_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2e_64(); + loaded_pix = getbpl2_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl2o_64(); + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl2_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl2e_64(); + loaded_pix = getbpl2_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl2o_64(); + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl2_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl2_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p2_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p2_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p2_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p2_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p2_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p2_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ilores_dhires_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n0_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p4_ilores_dhires_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e_64(); + loaded_pix = getbpl4_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e_64(); + loaded_pix = getbpl4_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p4_ilores_dhires_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_dpf1_p8_ishres_dlores(void) +static void lts_aga_fm2_dpf0_p4_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ehb0_p8_ishres_dlores(void) +static void lts_aga_fm2_dpf1_p4_ilores_dhires_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e_64(); + loaded_pix = getbpl4_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e_64(); + loaded_pix = getbpl4_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p4_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p8_ishres_dlores(void) +static void lts_aga_fm2_ehb0_p4_ilores_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_ham0_p8_ishres_dlores(void) +static void lts_aga_fm2_ehb0_p4_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ham1_p8_ishres_dlores(void) +static void lts_aga_fm2_ehb1_p4_ilores_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_kehb0_p8_ishres_dlores(void) +static void lts_aga_fm2_ehb1_p4_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p8_ishres_dlores(void) +static void lts_aga_fm2_ham0_p4_ilores_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_n0_p2_ishres_dlores_spr(void) +static void lts_aga_fm2_ham0_p4_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_n1_p2_ishres_dlores_spr(void) +static void lts_aga_fm2_ham1_p4_ilores_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_dpf0_p2_ishres_dlores_spr(void) +static void lts_aga_fm2_ham1_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ilores_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p6_ilores_dhires_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n0_p6_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_dpf1_p2_ishres_dlores_spr(void) +static void lts_aga_fm2_n1_p6_ilores_dhires_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p6_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ehb0_p2_ishres_dlores_spr(void) +static void lts_aga_fm2_dpf0_p6_ilores_dhires_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_ehb1_p2_ishres_dlores_spr(void) +static void lts_aga_fm2_dpf0_p6_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ham0_p2_ishres_dlores_spr(void) +static void lts_aga_fm2_dpf1_p6_ilores_dhires_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_ham1_p2_ishres_dlores_spr(void) +static void lts_aga_fm2_dpf1_p6_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_kehb0_p2_ishres_dlores_spr(void) +static void lts_aga_fm2_ehb0_p6_ilores_dhires_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + pix2 ^= bplcon4_denise_xor_val; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_kehb1_p2_ishres_dlores_spr(void) +static void lts_aga_fm2_ehb0_p6_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_n0_p4_ishres_dlores_spr(void) +static void lts_aga_fm2_ehb1_p6_ilores_dhires_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + pix2 ^= bplcon4_denise_xor_val; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_n1_p4_ishres_dlores_spr(void) +static void lts_aga_fm2_ehb1_p6_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_dpf0_p4_ishres_dlores_spr(void) +static void lts_aga_fm2_ham0_p6_ilores_dhires_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = decode_ham_pixel_aga(pix2); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_dpf1_p4_ishres_dlores_spr(void) +static void lts_aga_fm2_ham0_p6_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ehb0_p4_ishres_dlores_spr(void) +static void lts_aga_fm2_ham1_p6_ilores_dhires_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = decode_ham_pixel_aga(pix2); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_ehb1_p4_ishres_dlores_spr(void) +static void lts_aga_fm2_ham1_p6_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ham0_p4_ishres_dlores_spr(void) +static void lts_aga_fm2_kehb0_p6_ilores_dhires_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_ham1_p4_ishres_dlores_spr(void) +static void lts_aga_fm2_kehb0_p6_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_kehb0_p4_ishres_dlores_spr(void) +static void lts_aga_fm2_kehb1_p6_ilores_dhires_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl6e_64(); + loaded_pix = getbpl6_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl6o_64(); + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl6_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl6_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_kehb1_p4_ishres_dlores_spr(void) +static void lts_aga_fm2_kehb1_p6_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_n0_p6_ishres_dlores_spr(void) +static void lts_aga_fm2_n0_p8_ilores_dhires_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_n1_p6_ishres_dlores_spr(void) +static void lts_aga_fm2_n0_p8_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_dpf0_p6_ishres_dlores_spr(void) +static void lts_aga_fm2_n1_p8_ilores_dhires_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_dpf1_p6_ishres_dlores_spr(void) +static void lts_aga_fm2_n1_p8_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ehb0_p6_ishres_dlores_spr(void) +static void lts_aga_fm2_dpf0_p8_ilores_dhires_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_ehb1_p6_ishres_dlores_spr(void) +static void lts_aga_fm2_dpf0_p8_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ham0_p6_ishres_dlores_spr(void) +static void lts_aga_fm2_dpf1_p8_ilores_dhires_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_ham1_p6_ishres_dlores_spr(void) +static void lts_aga_fm2_dpf1_p8_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_kehb0_p6_ishres_dlores_spr(void) +static void lts_aga_fm2_ehb0_p8_ilores_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p6_ishres_dlores_spr(void) +static void lts_aga_fm2_ehb0_p8_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_n0_p8_ishres_dlores_spr(void) +static void lts_aga_fm2_ehb1_p8_ilores_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_n1_p8_ishres_dlores_spr(void) +static void lts_aga_fm2_ehb1_p8_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_dpf0_p8_ishres_dlores_spr(void) +static void lts_aga_fm2_ham0_p8_ilores_dhires_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = decode_ham_pixel_aga(pix2); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_dpf1_p8_ishres_dlores_spr(void) +static void lts_aga_fm2_ham0_p8_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ehb0_p8_ishres_dlores_spr(void) +static void lts_aga_fm2_ham1_p8_ilores_dhires_spr(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = decode_ham_pixel_aga(pix2); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_aga_fm2_ehb1_p8_ishres_dlores_spr(void) +static void lts_aga_fm2_ham1_p8_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ham0_p8_ishres_dlores_spr(void) +static void lts_aga_fm2_kehb0_p8_ilores_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_ham1_p8_ishres_dlores_spr(void) +static void lts_aga_fm2_kehb0_p8_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_kehb0_p8_ishres_dlores_spr(void) +static void lts_aga_fm2_kehb1_p8_ilores_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p8_ishres_dlores_spr(void) +static void lts_aga_fm2_kehb1_p8_ilores_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_n0_p2_ilores_dhires(void) +static void lts_aga_fm2_n0_p2_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7431,17 +19159,11 @@ static void lts_aga_fm2_n0_p2_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl2_64(); - loaded_pix = getbpl2_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl2_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl2_64(); } + loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -7455,17 +19177,11 @@ static void lts_aga_fm2_n0_p2_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl2_64(); - loaded_pix = getbpl2_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl2_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl2_64(); } + loaded_pix = getbpl2_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -7505,7 +19221,11 @@ static void lts_aga_fm2_n0_p2_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_n1_p2_ilores_dhires(void) +static void lts_aga_fm2_n0_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p2_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7528,28 +19248,14 @@ static void lts_aga_fm2_n1_p2_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl2e_64(); - loaded_pix = getbpl2_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl2o_64(); - loaded_pix = getbpl2_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl2e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl2_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl2o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl2_64(); } + loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -7563,28 +19269,14 @@ static void lts_aga_fm2_n1_p2_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl2e_64(); - loaded_pix = getbpl2_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl2o_64(); - loaded_pix = getbpl2_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl2e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl2_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl2o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl2_64(); } + loaded_pix = getbpl2_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -7624,7 +19316,11 @@ static void lts_aga_fm2_n1_p2_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p2_ilores_dhires(void) +static void lts_aga_fm2_n1_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p2_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7652,17 +19348,11 @@ static void lts_aga_fm2_dpf0_p2_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl2_64(); - loaded_pix = getbpl2_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl2_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl2_64(); } + loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -7681,17 +19371,11 @@ static void lts_aga_fm2_dpf0_p2_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl2_64(); - loaded_pix = getbpl2_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl2_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl2_64(); } + loaded_pix = getbpl2_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -7731,7 +19415,11 @@ static void lts_aga_fm2_dpf0_p2_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p2_ilores_dhires(void) +static void lts_aga_fm2_dpf0_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p2_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7759,28 +19447,14 @@ static void lts_aga_fm2_dpf1_p2_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl2e_64(); - loaded_pix = getbpl2_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl2o_64(); - loaded_pix = getbpl2_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl2e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl2_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl2o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl2_64(); } + loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -7799,28 +19473,14 @@ static void lts_aga_fm2_dpf1_p2_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl2e_64(); - loaded_pix = getbpl2_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl2o_64(); - loaded_pix = getbpl2_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl2e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl2_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl2o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl2_64(); } + loaded_pix = getbpl2_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -7860,31 +19520,59 @@ static void lts_aga_fm2_dpf1_p2_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p2_ilores_dhires(void) +static void lts_aga_fm2_dpf1_p2_ihires_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p2_ilores_dhires(void) +static void lts_aga_fm2_ehb0_p2_ihires_dhires(void) { lts_null(); } -static void lts_aga_fm2_ham0_p2_ilores_dhires(void) +static void lts_aga_fm2_ehb0_p2_ihires_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm2_ham1_p2_ilores_dhires(void) +static void lts_aga_fm2_ehb1_p2_ihires_dhires(void) { lts_null(); } -static void lts_aga_fm2_kehb0_p2_ilores_dhires(void) +static void lts_aga_fm2_ehb1_p2_ihires_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p2_ilores_dhires(void) +static void lts_aga_fm2_ham0_p2_ihires_dhires(void) { lts_null(); } -static void lts_aga_fm2_n0_p4_ilores_dhires(void) +static void lts_aga_fm2_ham0_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p2_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p2_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p2_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7907,17 +19595,11 @@ static void lts_aga_fm2_n0_p4_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl4_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -7931,17 +19613,11 @@ static void lts_aga_fm2_n0_p4_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl4_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -7981,7 +19657,11 @@ static void lts_aga_fm2_n0_p4_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_n1_p4_ilores_dhires(void) +static void lts_aga_fm2_n0_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p4_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8004,28 +19684,14 @@ static void lts_aga_fm2_n1_p4_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e_64(); - loaded_pix = getbpl4_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl4e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl4o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -8039,28 +19705,14 @@ static void lts_aga_fm2_n1_p4_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e_64(); - loaded_pix = getbpl4_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl4e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl4o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -8100,7 +19752,11 @@ static void lts_aga_fm2_n1_p4_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p4_ilores_dhires(void) +static void lts_aga_fm2_n1_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p4_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8128,17 +19784,11 @@ static void lts_aga_fm2_dpf0_p4_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl4_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -8157,17 +19807,11 @@ static void lts_aga_fm2_dpf0_p4_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl4_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -8207,7 +19851,11 @@ static void lts_aga_fm2_dpf0_p4_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p4_ilores_dhires(void) +static void lts_aga_fm2_dpf0_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p4_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8235,28 +19883,14 @@ static void lts_aga_fm2_dpf1_p4_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e_64(); - loaded_pix = getbpl4_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl4e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl4o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -8275,28 +19909,14 @@ static void lts_aga_fm2_dpf1_p4_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e_64(); - loaded_pix = getbpl4_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl4e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl4o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -8336,31 +19956,59 @@ static void lts_aga_fm2_dpf1_p4_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p4_ilores_dhires(void) +static void lts_aga_fm2_dpf1_p4_ihires_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p4_ilores_dhires(void) +static void lts_aga_fm2_ehb0_p4_ihires_dhires(void) { lts_null(); } -static void lts_aga_fm2_ham0_p4_ilores_dhires(void) +static void lts_aga_fm2_ehb0_p4_ihires_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm2_ham1_p4_ilores_dhires(void) +static void lts_aga_fm2_ehb1_p4_ihires_dhires(void) { lts_null(); } -static void lts_aga_fm2_kehb0_p4_ilores_dhires(void) +static void lts_aga_fm2_ehb1_p4_ihires_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p4_ilores_dhires(void) +static void lts_aga_fm2_ham0_p4_ihires_dhires(void) { lts_null(); } -static void lts_aga_fm2_n0_p6_ilores_dhires(void) +static void lts_aga_fm2_ham0_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8383,17 +20031,11 @@ static void lts_aga_fm2_n0_p6_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -8407,17 +20049,11 @@ static void lts_aga_fm2_n0_p6_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -8457,7 +20093,11 @@ static void lts_aga_fm2_n0_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_n1_p6_ilores_dhires(void) +static void lts_aga_fm2_n0_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8480,28 +20120,14 @@ static void lts_aga_fm2_n1_p6_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -8515,28 +20141,14 @@ static void lts_aga_fm2_n1_p6_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -8576,7 +20188,11 @@ static void lts_aga_fm2_n1_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p6_ilores_dhires(void) +static void lts_aga_fm2_n1_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8604,17 +20220,11 @@ static void lts_aga_fm2_dpf0_p6_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -8633,17 +20243,11 @@ static void lts_aga_fm2_dpf0_p6_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -8683,7 +20287,11 @@ static void lts_aga_fm2_dpf0_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p6_ilores_dhires(void) +static void lts_aga_fm2_dpf0_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8711,28 +20319,14 @@ static void lts_aga_fm2_dpf1_p6_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -8751,28 +20345,14 @@ static void lts_aga_fm2_dpf1_p6_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -8812,7 +20392,11 @@ static void lts_aga_fm2_dpf1_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p6_ilores_dhires(void) +static void lts_aga_fm2_dpf1_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8841,17 +20425,11 @@ static void lts_aga_fm2_ehb0_p6_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -8871,17 +20449,11 @@ static void lts_aga_fm2_ehb0_p6_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -8921,7 +20493,11 @@ static void lts_aga_fm2_ehb0_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ehb1_p6_ilores_dhires(void) +static void lts_aga_fm2_ehb0_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8950,28 +20526,14 @@ static void lts_aga_fm2_ehb1_p6_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -8991,28 +20553,14 @@ static void lts_aga_fm2_ehb1_p6_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -9052,7 +20600,11 @@ static void lts_aga_fm2_ehb1_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ham0_p6_ilores_dhires(void) +static void lts_aga_fm2_ehb1_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9075,17 +20627,11 @@ static void lts_aga_fm2_ham0_p6_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -9099,17 +20645,11 @@ static void lts_aga_fm2_ham0_p6_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -9149,7 +20689,11 @@ static void lts_aga_fm2_ham0_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p6_ilores_dhires(void) +static void lts_aga_fm2_ham0_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9172,28 +20716,14 @@ static void lts_aga_fm2_ham1_p6_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -9207,28 +20737,14 @@ static void lts_aga_fm2_ham1_p6_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -9268,7 +20784,11 @@ static void lts_aga_fm2_ham1_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p6_ilores_dhires(void) +static void lts_aga_fm2_ham1_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9292,17 +20812,11 @@ static void lts_aga_fm2_kehb0_p6_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -9317,17 +20831,11 @@ static void lts_aga_fm2_kehb0_p6_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -9367,7 +20875,11 @@ static void lts_aga_fm2_kehb0_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_kehb1_p6_ilores_dhires(void) +static void lts_aga_fm2_kehb0_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p6_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9391,28 +20903,14 @@ static void lts_aga_fm2_kehb1_p6_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -9427,28 +20925,14 @@ static void lts_aga_fm2_kehb1_p6_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -9488,7 +20972,11 @@ static void lts_aga_fm2_kehb1_p6_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_n0_p8_ilores_dhires(void) +static void lts_aga_fm2_kehb1_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9511,17 +20999,11 @@ static void lts_aga_fm2_n0_p8_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -9535,17 +21017,11 @@ static void lts_aga_fm2_n0_p8_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -9585,7 +21061,11 @@ static void lts_aga_fm2_n0_p8_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_n1_p8_ilores_dhires(void) +static void lts_aga_fm2_n0_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p8_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9608,28 +21088,14 @@ static void lts_aga_fm2_n1_p8_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -9643,28 +21109,14 @@ static void lts_aga_fm2_n1_p8_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -9704,7 +21156,11 @@ static void lts_aga_fm2_n1_p8_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p8_ilores_dhires(void) +static void lts_aga_fm2_n1_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p8_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9732,17 +21188,11 @@ static void lts_aga_fm2_dpf0_p8_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -9761,17 +21211,11 @@ static void lts_aga_fm2_dpf0_p8_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -9811,7 +21255,11 @@ static void lts_aga_fm2_dpf0_p8_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p8_ilores_dhires(void) +static void lts_aga_fm2_dpf0_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p8_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9839,28 +21287,14 @@ static void lts_aga_fm2_dpf1_p8_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -9879,28 +21313,14 @@ static void lts_aga_fm2_dpf1_p8_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -9940,112 +21360,27 @@ static void lts_aga_fm2_dpf1_p8_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p8_ilores_dhires(void) +static void lts_aga_fm2_dpf1_p8_ihires_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p8_ilores_dhires(void) +static void lts_aga_fm2_ehb0_p8_ihires_dhires(void) { lts_null(); } -static void lts_aga_fm2_ham0_p8_ilores_dhires(void) +static void lts_aga_fm2_ehb0_p8_ihires_dhires_filtered(void) { - while (denise_cck < denise_total) { - do_denise_cck(denise_linecnt, denise_startpos, denise_cck); - if (lts_changed) return; - for (int h = 0; h < 2; h++) { - if (h) { - denise_hcounter_next = denise_hcounter_new; - } - int cnt = denise_hcounter << 2; - int cnt_next = denise_hcounter_next << 2; - if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - uae_u8 pix0 = 0; - uae_u32 dpix_val0 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val0 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix0 = loaded_pixs[0]; - clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); - } - last_bpl_pix = pix0; - } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); - } - loaded_pixs[0] = loaded_pix; - internal_pixel_cnt += 2; - uae_u8 pix2 = 0; - uae_u32 dpix_val2 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val2 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix2 = loaded_pixs[2]; - clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); - } - last_bpl_pix = pix2; - } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); - } - loaded_pixs[2] = loaded_pix; - internal_pixel_cnt += 2; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - dtbuf[h][0] = dpix_val0; - dtbuf[h][2] = dpix_val2; - uae_u32 t0 = dtbuf[h ^ lol][0]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t0 = decode_denise_specials_debug(t0, cnt + 0); - } - #endif - *buf1++ = t0; - *buf2++ = t0; - uae_u32 t2 = dtbuf[h ^ lol][2]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t2 = decode_denise_specials_debug(t2, cnt + 2); - } - #endif - *buf1++ = t2; - *buf2++ = t2; - } - sprites_hidden = sprites_hidden2; - #ifdef DEBUGGER - *debug_dma_dhpos_odd = denise_hcounter; - #endif - denise_hcounter++; - denise_hcounter &= 511; - denise_hcounter_next++; - denise_hcounter_next &= 511; - } - denise_pixtotal++; - if (denise_pixtotal == 0) { - internal_pixel_start_cnt = internal_pixel_cnt; - } - denise_hcounter = denise_hcounter_new; - denise_cck++; - } + lts_null(); } -static void lts_aga_fm2_ham1_p8_ilores_dhires(void) +static void lts_aga_fm2_ehb1_p8_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ihires_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10068,28 +21403,103 @@ static void lts_aga_fm2_ham1_p8_ilores_dhires(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); + loaded_pix = getbpl8_64(); + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = decode_ham_pixel_aga(pix2); + } + last_bpl_pix = pix2; } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][2] = dpix_val2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham0_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p8_ihires_dhires(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -10103,28 +21513,14 @@ static void lts_aga_fm2_ham1_p8_ilores_dhires(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -10164,15 +21560,27 @@ static void lts_aga_fm2_ham1_p8_ilores_dhires(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p8_ilores_dhires(void) +static void lts_aga_fm2_ham1_p8_ihires_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p8_ilores_dhires(void) +static void lts_aga_fm2_kehb0_p8_ihires_dhires(void) { lts_null(); } -static void lts_aga_fm2_n0_p2_ilores_dhires_spr(void) +static void lts_aga_fm2_kehb0_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ihires_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p2_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10196,17 +21604,11 @@ static void lts_aga_fm2_n0_p2_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl2_64(); - loaded_pix = getbpl2_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl2_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl2_64(); } + loaded_pix = getbpl2_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -10229,17 +21631,11 @@ static void lts_aga_fm2_n0_p2_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl2_64(); - loaded_pix = getbpl2_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl2_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl2_64(); } + loaded_pix = getbpl2_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -10299,7 +21695,11 @@ static void lts_aga_fm2_n0_p2_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_n1_p2_ilores_dhires_spr(void) +static void lts_aga_fm2_n0_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p2_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10323,28 +21723,14 @@ static void lts_aga_fm2_n1_p2_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl2e_64(); - loaded_pix = getbpl2_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl2o_64(); - loaded_pix = getbpl2_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl2e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl2_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl2o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl2_64(); } + loaded_pix = getbpl2_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -10367,28 +21753,14 @@ static void lts_aga_fm2_n1_p2_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl2e_64(); - loaded_pix = getbpl2_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl2o_64(); - loaded_pix = getbpl2_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl2e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl2_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl2o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl2_64(); } + loaded_pix = getbpl2_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -10448,7 +21820,11 @@ static void lts_aga_fm2_n1_p2_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p2_ilores_dhires_spr(void) +static void lts_aga_fm2_n1_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p2_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10477,17 +21853,11 @@ static void lts_aga_fm2_dpf0_p2_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl2_64(); - loaded_pix = getbpl2_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl2_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl2_64(); } + loaded_pix = getbpl2_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -10515,17 +21885,11 @@ static void lts_aga_fm2_dpf0_p2_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl2_64(); - loaded_pix = getbpl2_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl2_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl2_64(); } + loaded_pix = getbpl2_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -10585,7 +21949,11 @@ static void lts_aga_fm2_dpf0_p2_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p2_ilores_dhires_spr(void) +static void lts_aga_fm2_dpf0_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p2_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10614,28 +21982,14 @@ static void lts_aga_fm2_dpf1_p2_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl2e_64(); - loaded_pix = getbpl2_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl2o_64(); - loaded_pix = getbpl2_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl2e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl2_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl2o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl2_64(); } + loaded_pix = getbpl2_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -10663,28 +22017,14 @@ static void lts_aga_fm2_dpf1_p2_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl2e_64(); - loaded_pix = getbpl2_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl2o_64(); - loaded_pix = getbpl2_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl2e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl2_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl2o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl2_64(); } + loaded_pix = getbpl2_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -10744,31 +22084,59 @@ static void lts_aga_fm2_dpf1_p2_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p2_ilores_dhires_spr(void) +static void lts_aga_fm2_dpf1_p2_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p2_ilores_dhires_spr(void) +static void lts_aga_fm2_ehb0_p2_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_ham0_p2_ilores_dhires_spr(void) +static void lts_aga_fm2_ehb0_p2_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ham1_p2_ilores_dhires_spr(void) +static void lts_aga_fm2_ehb1_p2_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_kehb0_p2_ilores_dhires_spr(void) +static void lts_aga_fm2_ehb1_p2_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p2_ilores_dhires_spr(void) +static void lts_aga_fm2_ham0_p2_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_n0_p4_ilores_dhires_spr(void) +static void lts_aga_fm2_ham0_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p2_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p2_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p2_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10792,17 +22160,11 @@ static void lts_aga_fm2_n0_p4_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl4_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -10825,17 +22187,11 @@ static void lts_aga_fm2_n0_p4_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl4_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -10895,7 +22251,11 @@ static void lts_aga_fm2_n0_p4_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_n1_p4_ilores_dhires_spr(void) +static void lts_aga_fm2_n0_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p4_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10919,28 +22279,14 @@ static void lts_aga_fm2_n1_p4_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e_64(); - loaded_pix = getbpl4_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl4e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl4o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -10963,28 +22309,14 @@ static void lts_aga_fm2_n1_p4_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e_64(); - loaded_pix = getbpl4_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl4e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl4o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -11044,7 +22376,11 @@ static void lts_aga_fm2_n1_p4_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p4_ilores_dhires_spr(void) +static void lts_aga_fm2_n1_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p4_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11073,17 +22409,11 @@ static void lts_aga_fm2_dpf0_p4_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl4_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -11111,17 +22441,11 @@ static void lts_aga_fm2_dpf0_p4_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl4_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -11181,7 +22505,11 @@ static void lts_aga_fm2_dpf0_p4_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p4_ilores_dhires_spr(void) +static void lts_aga_fm2_dpf0_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p4_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11210,28 +22538,14 @@ static void lts_aga_fm2_dpf1_p4_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e_64(); - loaded_pix = getbpl4_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl4e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl4o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -11259,28 +22573,14 @@ static void lts_aga_fm2_dpf1_p4_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e_64(); - loaded_pix = getbpl4_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl4e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl4o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -11340,31 +22640,59 @@ static void lts_aga_fm2_dpf1_p4_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p4_ilores_dhires_spr(void) +static void lts_aga_fm2_dpf1_p4_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p4_ilores_dhires_spr(void) +static void lts_aga_fm2_ehb0_p4_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_ham0_p4_ilores_dhires_spr(void) +static void lts_aga_fm2_ehb0_p4_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ham1_p4_ilores_dhires_spr(void) +static void lts_aga_fm2_ehb1_p4_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_kehb0_p4_ilores_dhires_spr(void) +static void lts_aga_fm2_ehb1_p4_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p4_ilores_dhires_spr(void) +static void lts_aga_fm2_ham0_p4_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_n0_p6_ilores_dhires_spr(void) +static void lts_aga_fm2_ham0_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11388,17 +22716,11 @@ static void lts_aga_fm2_n0_p6_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -11421,17 +22743,11 @@ static void lts_aga_fm2_n0_p6_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -11491,7 +22807,11 @@ static void lts_aga_fm2_n0_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_n1_p6_ilores_dhires_spr(void) +static void lts_aga_fm2_n0_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11515,28 +22835,14 @@ static void lts_aga_fm2_n1_p6_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -11559,28 +22865,14 @@ static void lts_aga_fm2_n1_p6_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -11640,7 +22932,11 @@ static void lts_aga_fm2_n1_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p6_ilores_dhires_spr(void) +static void lts_aga_fm2_n1_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11669,17 +22965,11 @@ static void lts_aga_fm2_dpf0_p6_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -11707,17 +22997,11 @@ static void lts_aga_fm2_dpf0_p6_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -11777,7 +23061,11 @@ static void lts_aga_fm2_dpf0_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p6_ilores_dhires_spr(void) +static void lts_aga_fm2_dpf0_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11806,28 +23094,14 @@ static void lts_aga_fm2_dpf1_p6_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -11855,28 +23129,14 @@ static void lts_aga_fm2_dpf1_p6_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -11936,7 +23196,11 @@ static void lts_aga_fm2_dpf1_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p6_ilores_dhires_spr(void) +static void lts_aga_fm2_dpf1_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11966,17 +23230,11 @@ static void lts_aga_fm2_ehb0_p6_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -12005,17 +23263,11 @@ static void lts_aga_fm2_ehb0_p6_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -12075,7 +23327,11 @@ static void lts_aga_fm2_ehb0_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb1_p6_ilores_dhires_spr(void) +static void lts_aga_fm2_ehb0_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12105,28 +23361,14 @@ static void lts_aga_fm2_ehb1_p6_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -12155,28 +23397,14 @@ static void lts_aga_fm2_ehb1_p6_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -12236,7 +23464,11 @@ static void lts_aga_fm2_ehb1_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ham0_p6_ilores_dhires_spr(void) +static void lts_aga_fm2_ehb1_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12260,17 +23492,11 @@ static void lts_aga_fm2_ham0_p6_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -12293,17 +23519,11 @@ static void lts_aga_fm2_ham0_p6_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -12363,7 +23583,11 @@ static void lts_aga_fm2_ham0_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p6_ilores_dhires_spr(void) +static void lts_aga_fm2_ham0_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12387,28 +23611,14 @@ static void lts_aga_fm2_ham1_p6_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -12431,28 +23641,14 @@ static void lts_aga_fm2_ham1_p6_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -12512,7 +23708,11 @@ static void lts_aga_fm2_ham1_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p6_ilores_dhires_spr(void) +static void lts_aga_fm2_ham1_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12537,17 +23737,11 @@ static void lts_aga_fm2_kehb0_p6_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -12571,17 +23765,11 @@ static void lts_aga_fm2_kehb0_p6_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -12641,7 +23829,11 @@ static void lts_aga_fm2_kehb0_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_kehb1_p6_ilores_dhires_spr(void) +static void lts_aga_fm2_kehb0_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p6_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12666,28 +23858,14 @@ static void lts_aga_fm2_kehb1_p6_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -12711,28 +23889,14 @@ static void lts_aga_fm2_kehb1_p6_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl6e_64(); - loaded_pix = getbpl6_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl6o_64(); - loaded_pix = getbpl6_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl6_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl6_64(); } + loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -12792,7 +23956,11 @@ static void lts_aga_fm2_kehb1_p6_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_n0_p8_ilores_dhires_spr(void) +static void lts_aga_fm2_kehb1_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12816,17 +23984,11 @@ static void lts_aga_fm2_n0_p8_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -12849,17 +24011,11 @@ static void lts_aga_fm2_n0_p8_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -12919,7 +24075,11 @@ static void lts_aga_fm2_n0_p8_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_n1_p8_ilores_dhires_spr(void) +static void lts_aga_fm2_n0_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p8_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -12943,28 +24103,14 @@ static void lts_aga_fm2_n1_p8_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -12987,28 +24133,14 @@ static void lts_aga_fm2_n1_p8_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -13068,7 +24200,11 @@ static void lts_aga_fm2_n1_p8_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p8_ilores_dhires_spr(void) +static void lts_aga_fm2_n1_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p8_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13097,17 +24233,11 @@ static void lts_aga_fm2_dpf0_p8_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -13135,17 +24265,11 @@ static void lts_aga_fm2_dpf0_p8_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -13205,7 +24329,11 @@ static void lts_aga_fm2_dpf0_p8_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p8_ilores_dhires_spr(void) +static void lts_aga_fm2_dpf0_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p8_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13234,28 +24362,14 @@ static void lts_aga_fm2_dpf1_p8_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -13283,28 +24397,14 @@ static void lts_aga_fm2_dpf1_p8_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -13364,15 +24464,27 @@ static void lts_aga_fm2_dpf1_p8_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p8_ilores_dhires_spr(void) +static void lts_aga_fm2_dpf1_p8_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p8_ilores_dhires_spr(void) +static void lts_aga_fm2_ehb0_p8_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_ham0_p8_ilores_dhires_spr(void) +static void lts_aga_fm2_ehb0_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13396,17 +24508,11 @@ static void lts_aga_fm2_ham0_p8_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -13429,17 +24535,11 @@ static void lts_aga_fm2_ham0_p8_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -13499,7 +24599,11 @@ static void lts_aga_fm2_ham0_p8_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p8_ilores_dhires_spr(void) +static void lts_aga_fm2_ham0_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p8_ihires_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13523,28 +24627,14 @@ static void lts_aga_fm2_ham1_p8_ilores_dhires_spr(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -13567,28 +24657,14 @@ static void lts_aga_fm2_ham1_p8_ilores_dhires_spr(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -13648,15 +24724,27 @@ static void lts_aga_fm2_ham1_p8_ilores_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p8_ilores_dhires_spr(void) +static void lts_aga_fm2_ham1_p8_ihires_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p8_ilores_dhires_spr(void) +static void lts_aga_fm2_kehb0_p8_ihires_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_n0_p2_ihires_dhires(void) +static void lts_aga_fm2_kehb0_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ihires_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p2_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13680,11 +24768,12 @@ static void lts_aga_fm2_n0_p2_ihires_dhires(void) last_bpl_pix = pix0; } shiftbpl2_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl2_64(); } loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; + shiftbpl2_64(); internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -13698,11 +24787,12 @@ static void lts_aga_fm2_n0_p2_ihires_dhires(void) last_bpl_pix = pix2; } shiftbpl2_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl2_64(); } loaded_pix = getbpl2_64(); loaded_pixs[2] = loaded_pix; + shiftbpl2_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -13741,7 +24831,7 @@ static void lts_aga_fm2_n0_p2_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_n1_p2_ihires_dhires(void) +static void lts_aga_fm2_n0_p2_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13765,14 +24855,28 @@ static void lts_aga_fm2_n1_p2_ihires_dhires(void) last_bpl_pix = pix0; } shiftbpl2_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl2o_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); } loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -13786,17 +24890,33 @@ static void lts_aga_fm2_n1_p2_ihires_dhires(void) last_bpl_pix = pix2; } shiftbpl2_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl2o_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); } loaded_pix = getbpl2_64(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -13832,7 +24952,7 @@ static void lts_aga_fm2_n1_p2_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p2_ihires_dhires(void) +static void lts_aga_fm2_n1_p2_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13851,21 +24971,20 @@ static void lts_aga_fm2_dpf0_p2_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } shiftbpl2_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); } loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; + shiftbpl2_64(); internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -13874,21 +24993,20 @@ static void lts_aga_fm2_dpf0_p2_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } shiftbpl2_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); } loaded_pix = getbpl2_64(); loaded_pixs[2] = loaded_pix; + shiftbpl2_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -13927,7 +25045,7 @@ static void lts_aga_fm2_dpf0_p2_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p2_ihires_dhires(void) +static void lts_aga_fm2_n1_p2_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -13946,24 +25064,39 @@ static void lts_aga_fm2_dpf1_p2_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } shiftbpl2_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl2e_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { copybpl2o_64(); } loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -13972,27 +25105,44 @@ static void lts_aga_fm2_dpf1_p2_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } shiftbpl2_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl2e_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { copybpl2o_64(); } loaded_pix = getbpl2_64(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -14028,31 +25178,7 @@ static void lts_aga_fm2_dpf1_p2_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p2_ihires_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p2_ihires_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p2_ihires_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p2_ihires_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p2_ihires_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p2_ihires_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p4_ihires_dhires(void) +static void lts_aga_fm2_dpf0_p2_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14071,16 +25197,22 @@ static void lts_aga_fm2_n0_p4_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; + shiftbpl2_64(); internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -14089,16 +25221,22 @@ static void lts_aga_fm2_n0_p4_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl2_64(); loaded_pixs[2] = loaded_pix; + shiftbpl2_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -14137,7 +25275,7 @@ static void lts_aga_fm2_n0_p4_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_n1_p4_ihires_dhires(void) +static void lts_aga_fm2_dpf0_p2_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14156,19 +25294,43 @@ static void lts_aga_fm2_n1_p4_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -14177,22 +25339,48 @@ static void lts_aga_fm2_n1_p4_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl2_64(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + } + last_bpl_pix = pix3; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -14228,7 +25416,7 @@ static void lts_aga_fm2_n1_p4_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p4_ihires_dhires(void) +static void lts_aga_fm2_dpf1_p2_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14256,12 +25444,16 @@ static void lts_aga_fm2_dpf0_p4_ihires_dhires(void) } last_bpl_pix = pix0; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); } - loaded_pix = getbpl4_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; + shiftbpl2_64(); internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -14279,12 +25471,16 @@ static void lts_aga_fm2_dpf0_p4_ihires_dhires(void) } last_bpl_pix = pix2; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); } - loaded_pix = getbpl4_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); loaded_pixs[2] = loaded_pix; + shiftbpl2_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -14323,7 +25519,7 @@ static void lts_aga_fm2_dpf0_p4_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p4_ihires_dhires(void) +static void lts_aga_fm2_dpf1_p2_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14351,15 +25547,40 @@ static void lts_aga_fm2_dpf1_p4_ihires_dhires(void) } last_bpl_pix = pix0; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl2_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -14377,18 +25598,45 @@ static void lts_aga_fm2_dpf1_p4_ihires_dhires(void) } last_bpl_pix = pix2; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl2_64(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + } + last_bpl_pix = pix3; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -14424,31 +25672,55 @@ static void lts_aga_fm2_dpf1_p4_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p4_ihires_dhires(void) +static void lts_aga_fm2_ehb0_p2_ishres_dhires(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p4_ihires_dhires(void) +static void lts_aga_fm2_ehb0_p2_ishres_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm2_ham0_p4_ihires_dhires(void) +static void lts_aga_fm2_ehb1_p2_ishres_dhires(void) { lts_null(); } -static void lts_aga_fm2_ham1_p4_ihires_dhires(void) +static void lts_aga_fm2_ehb1_p2_ishres_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm2_kehb0_p4_ihires_dhires(void) +static void lts_aga_fm2_ham0_p2_ishres_dhires(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p4_ihires_dhires(void) +static void lts_aga_fm2_ham0_p2_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p2_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p2_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p2_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p2_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p2_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p2_ishres_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm2_n0_p6_ihires_dhires(void) +static void lts_aga_fm2_n0_p4_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14471,12 +25743,13 @@ static void lts_aga_fm2_n0_p6_ihires_dhires(void) } last_bpl_pix = pix0; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -14489,12 +25762,13 @@ static void lts_aga_fm2_n0_p6_ihires_dhires(void) } last_bpl_pix = pix2; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -14533,7 +25807,7 @@ static void lts_aga_fm2_n0_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_n1_p6_ihires_dhires(void) +static void lts_aga_fm2_n0_p4_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14556,15 +25830,29 @@ static void lts_aga_fm2_n1_p6_ihires_dhires(void) } last_bpl_pix = pix0; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -14577,18 +25865,34 @@ static void lts_aga_fm2_n1_p6_ihires_dhires(void) } last_bpl_pix = pix2; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -14624,7 +25928,7 @@ static void lts_aga_fm2_n1_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p6_ihires_dhires(void) +static void lts_aga_fm2_n1_p4_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14643,21 +25947,20 @@ static void lts_aga_fm2_dpf0_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); } - loaded_pix = getbpl6_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -14666,21 +25969,20 @@ static void lts_aga_fm2_dpf0_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); } - loaded_pix = getbpl6_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -14719,7 +26021,7 @@ static void lts_aga_fm2_dpf0_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p6_ihires_dhires(void) +static void lts_aga_fm2_n1_p4_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14738,24 +26040,39 @@ static void lts_aga_fm2_dpf1_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -14764,27 +26081,44 @@ static void lts_aga_fm2_dpf1_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -14820,7 +26154,7 @@ static void lts_aga_fm2_dpf1_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p6_ihires_dhires(void) +static void lts_aga_fm2_dpf0_p4_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14839,22 +26173,22 @@ static void lts_aga_fm2_ehb0_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -14863,22 +26197,22 @@ static void lts_aga_fm2_ehb0_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -14917,7 +26251,7 @@ static void lts_aga_fm2_ehb0_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ehb1_p6_ihires_dhires(void) +static void lts_aga_fm2_dpf0_p4_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -14936,25 +26270,43 @@ static void lts_aga_fm2_ehb1_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -14963,28 +26315,48 @@ static void lts_aga_fm2_ehb1_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + } + last_bpl_pix = pix3; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -15020,7 +26392,7 @@ static void lts_aga_fm2_ehb1_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ham0_p6_ihires_dhires(void) +static void lts_aga_fm2_dpf1_p4_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15039,16 +26411,25 @@ static void lts_aga_fm2_ham0_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); } - loaded_pix = getbpl6_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -15057,16 +26438,25 @@ static void lts_aga_fm2_ham0_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); } - loaded_pix = getbpl6_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -15105,7 +26495,7 @@ static void lts_aga_fm2_ham0_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p6_ihires_dhires(void) +static void lts_aga_fm2_dpf1_p4_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15124,19 +26514,49 @@ static void lts_aga_fm2_ham1_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -15145,22 +26565,54 @@ static void lts_aga_fm2_ham1_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + } + last_bpl_pix = pix3; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -15196,7 +26648,55 @@ static void lts_aga_fm2_ham1_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p6_ihires_dhires(void) +static void lts_aga_fm2_ehb0_p4_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p6_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15215,17 +26715,17 @@ static void lts_aga_fm2_kehb0_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl6_64(); } loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -15234,17 +26734,17 @@ static void lts_aga_fm2_kehb0_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl6_64(); } loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -15283,7 +26783,7 @@ static void lts_aga_fm2_kehb0_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_kehb1_p6_ihires_dhires(void) +static void lts_aga_fm2_n0_p6_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15302,20 +26802,33 @@ static void lts_aga_fm2_kehb1_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); } loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -15324,23 +26837,38 @@ static void lts_aga_fm2_kehb1_p6_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); } loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -15376,7 +26904,7 @@ static void lts_aga_fm2_kehb1_p6_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_n0_p8_ihires_dhires(void) +static void lts_aga_fm2_n1_p6_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15399,12 +26927,16 @@ static void lts_aga_fm2_n0_p8_ihires_dhires(void) } last_bpl_pix = pix0; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); } - loaded_pix = getbpl8_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -15417,12 +26949,16 @@ static void lts_aga_fm2_n0_p8_ihires_dhires(void) } last_bpl_pix = pix2; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); } - loaded_pix = getbpl8_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -15461,7 +26997,7 @@ static void lts_aga_fm2_n0_p8_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_n1_p8_ihires_dhires(void) +static void lts_aga_fm2_n1_p6_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15484,15 +27020,35 @@ static void lts_aga_fm2_n1_p8_ihires_dhires(void) } last_bpl_pix = pix0; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -15505,18 +27061,40 @@ static void lts_aga_fm2_n1_p8_ihires_dhires(void) } last_bpl_pix = pix2; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -15552,7 +27130,7 @@ static void lts_aga_fm2_n1_p8_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p8_ihires_dhires(void) +static void lts_aga_fm2_dpf0_p6_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15580,12 +27158,13 @@ static void lts_aga_fm2_dpf0_p8_ihires_dhires(void) } last_bpl_pix = pix0; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -15603,12 +27182,13 @@ static void lts_aga_fm2_dpf0_p8_ihires_dhires(void) } last_bpl_pix = pix2; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -15647,7 +27227,7 @@ static void lts_aga_fm2_dpf0_p8_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p8_ihires_dhires(void) +static void lts_aga_fm2_dpf0_p6_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15675,15 +27255,34 @@ static void lts_aga_fm2_dpf1_p8_ihires_dhires(void) } last_bpl_pix = pix0; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -15701,18 +27300,39 @@ static void lts_aga_fm2_dpf1_p8_ihires_dhires(void) } last_bpl_pix = pix2; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + } + last_bpl_pix = pix3; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -15748,15 +27368,7 @@ static void lts_aga_fm2_dpf1_p8_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p8_ihires_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p8_ihires_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p8_ihires_dhires(void) +static void lts_aga_fm2_dpf1_p6_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15775,16 +27387,25 @@ static void lts_aga_fm2_ham0_p8_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); } - loaded_pix = getbpl8_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -15793,16 +27414,25 @@ static void lts_aga_fm2_ham0_p8_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); } - loaded_pix = getbpl8_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -15841,7 +27471,7 @@ static void lts_aga_fm2_ham0_p8_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p8_ihires_dhires(void) +static void lts_aga_fm2_dpf1_p6_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15860,19 +27490,49 @@ static void lts_aga_fm2_ham1_p8_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; @@ -15881,22 +27541,54 @@ static void lts_aga_fm2_ham1_p8_ihires_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + } + last_bpl_pix = pix3; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -15932,15 +27624,7 @@ static void lts_aga_fm2_ham1_p8_ihires_dhires(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p8_ihires_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p8_ihires_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p2_ihires_dhires_spr(void) +static void lts_aga_fm2_ehb0_p6_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -15952,7 +27636,6 @@ static void lts_aga_fm2_n0_p2_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -15960,26 +27643,24 @@ static void lts_aga_fm2_n0_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } } last_bpl_pix = pix0; } - shiftbpl2_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2_64(); - } - loaded_pix = getbpl2_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -15987,39 +27668,26 @@ static void lts_aga_fm2_n0_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + pix2 ^= bplcon4_denise_xor_val; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } } last_bpl_pix = pix2; } - shiftbpl2_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2_64(); - } - loaded_pix = getbpl2_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -16055,7 +27723,7 @@ static void lts_aga_fm2_n0_p2_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_n1_p2_ihires_dhires_spr(void) +static void lts_aga_fm2_ehb0_p6_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -16067,7 +27735,6 @@ static void lts_aga_fm2_n1_p2_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -16075,29 +27742,46 @@ static void lts_aga_fm2_n1_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } } last_bpl_pix = pix0; } - shiftbpl2_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl2o_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); } - loaded_pix = getbpl2_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl6_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + if (!(pix1 & 0x20)) { + dpix_val1 = denise_colors.acolors[pix1]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix1 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val1 = CONVERT_RGB(v); + } } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -16105,42 +27789,50 @@ static void lts_aga_fm2_n1_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + pix2 ^= bplcon4_denise_xor_val; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } } last_bpl_pix = pix2; } - shiftbpl2_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl2o_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); } - loaded_pix = getbpl2_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pix = getbpl6_64(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + pix3 ^= bplcon4_denise_xor_val; + if (!(pix3 & 0x20)) { + dpix_val3 = denise_colors.acolors[pix3]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix3 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val3 = CONVERT_RGB(v); + } } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -16176,7 +27868,7 @@ static void lts_aga_fm2_n1_p2_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p2_ihires_dhires_spr(void) +static void lts_aga_fm2_ehb1_p6_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -16188,7 +27880,6 @@ static void lts_aga_fm2_dpf0_p2_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -16196,31 +27887,27 @@ static void lts_aga_fm2_dpf0_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl2_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); } - loaded_pix = getbpl2_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -16228,44 +27915,29 @@ static void lts_aga_fm2_dpf0_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; + pix2 ^= bplcon4_denise_xor_val; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl2_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); } - loaded_pix = getbpl2_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -16301,7 +27973,7 @@ static void lts_aga_fm2_dpf0_p2_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p2_ihires_dhires_spr(void) +static void lts_aga_fm2_ehb1_p6_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -16313,7 +27985,6 @@ static void lts_aga_fm2_dpf1_p2_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -16321,34 +27992,52 @@ static void lts_aga_fm2_dpf1_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl2_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2e_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl2o_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } - loaded_pix = getbpl2_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl6_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + if (!(pix1 & 0x20)) { + dpix_val1 = denise_colors.acolors[pix1]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix1 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val1 = CONVERT_RGB(v); + } } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -16356,47 +28045,56 @@ static void lts_aga_fm2_dpf1_p2_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; + pix2 ^= bplcon4_denise_xor_val; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl2_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl2e_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl2o_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } - loaded_pix = getbpl2_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pix = getbpl6_64(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + pix3 ^= bplcon4_denise_xor_val; + if (!(pix3 & 0x20)) { + dpix_val3 = denise_colors.acolors[pix3]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix3 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val3 = CONVERT_RGB(v); + } } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -16432,31 +28130,7 @@ static void lts_aga_fm2_dpf1_p2_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p2_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p2_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p2_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p2_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p2_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p2_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p4_ihires_dhires_spr(void) +static void lts_aga_fm2_ham0_p6_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -16468,7 +28142,6 @@ static void lts_aga_fm2_n0_p4_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -16476,26 +28149,33 @@ static void lts_aga_fm2_n0_p4_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl6_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -16503,39 +28183,35 @@ static void lts_aga_fm2_n0_p4_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pix = getbpl6_64(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + decode_ham_pixel_aga(pix3); } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -16571,7 +28247,7 @@ static void lts_aga_fm2_n0_p4_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_n1_p4_ihires_dhires_spr(void) +static void lts_aga_fm2_ham0_p6_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -16583,7 +28259,6 @@ static void lts_aga_fm2_n1_p4_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -16591,29 +28266,34 @@ static void lts_aga_fm2_n1_p4_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl6_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -16621,42 +28301,38 @@ static void lts_aga_fm2_n1_p4_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pix = getbpl6_64(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = decode_ham_pixel_aga(pix3); } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -16692,7 +28368,7 @@ static void lts_aga_fm2_n1_p4_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p4_ihires_dhires_spr(void) +static void lts_aga_fm2_ham1_p6_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -16704,7 +28380,6 @@ static void lts_aga_fm2_dpf0_p4_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -16712,31 +28387,39 @@ static void lts_aga_fm2_dpf0_p4_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -16744,44 +28427,41 @@ static void lts_aga_fm2_dpf0_p4_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + decode_ham_pixel_aga(pix3); + } + last_bpl_pix = pix3; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -16817,7 +28497,7 @@ static void lts_aga_fm2_dpf0_p4_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p4_ihires_dhires_spr(void) +static void lts_aga_fm2_ham1_p6_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -16829,7 +28509,6 @@ static void lts_aga_fm2_dpf1_p4_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -16837,34 +28516,40 @@ static void lts_aga_fm2_dpf1_p4_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl6_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -16872,47 +28557,44 @@ static void lts_aga_fm2_dpf1_p4_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pix = getbpl6_64(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = decode_ham_pixel_aga(pix3); } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -16948,31 +28630,7 @@ static void lts_aga_fm2_dpf1_p4_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p4_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p4_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p4_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p4_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p4_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p4_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p6_ihires_dhires_spr(void) +static void lts_aga_fm2_kehb0_p6_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -16984,7 +28642,6 @@ static void lts_aga_fm2_n0_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -16992,26 +28649,19 @@ static void lts_aga_fm2_n0_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl6_64(); } loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } - } loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -17019,39 +28669,21 @@ static void lts_aga_fm2_n0_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; } last_bpl_pix = pix2; } shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl6_64(); } loaded_pix = getbpl6_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } - } loaded_pixs[2] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -17087,7 +28719,7 @@ static void lts_aga_fm2_n0_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_n1_p6_ihires_dhires_spr(void) +static void lts_aga_fm2_kehb0_p6_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -17099,7 +28731,6 @@ static void lts_aga_fm2_n1_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -17107,29 +28738,36 @@ static void lts_aga_fm2_n1_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); } loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[pix1 & 31]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -17137,42 +28775,40 @@ static void lts_aga_fm2_n1_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; } last_bpl_pix = pix2; } shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); } loaded_pix = getbpl6_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + pix3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[pix3 & 31]; } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -17208,7 +28844,7 @@ static void lts_aga_fm2_n1_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p6_ihires_dhires_spr(void) +static void lts_aga_fm2_kehb1_p6_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -17220,39 +28856,29 @@ static void lts_aga_fm2_dpf0_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { dpix_val0 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; - clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + clxdat |= bplcoltable[pix0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); } - loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -17260,44 +28886,24 @@ static void lts_aga_fm2_dpf0_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; } last_bpl_pix = pix2; } shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); } - loaded_pix = getbpl6_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } + loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -17333,7 +28939,7 @@ static void lts_aga_fm2_dpf0_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p6_ihires_dhires_spr(void) +static void lts_aga_fm2_kehb1_p6_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -17345,7 +28951,6 @@ static void lts_aga_fm2_dpf1_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -17353,34 +28958,42 @@ static void lts_aga_fm2_dpf1_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); } loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[pix1 & 31]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -17388,47 +29001,46 @@ static void lts_aga_fm2_dpf1_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; } last_bpl_pix = pix2; } shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl6e_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { copybpl6o_64(); } loaded_pix = getbpl6_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + pix3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[pix3 & 31]; } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -17464,7 +29076,7 @@ static void lts_aga_fm2_dpf1_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p6_ihires_dhires_spr(void) +static void lts_aga_fm2_n0_p8_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -17476,7 +29088,6 @@ static void lts_aga_fm2_ehb0_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -17484,32 +29095,18 @@ static void lts_aga_fm2_ehb0_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); - } + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); - } - loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -17517,45 +29114,20 @@ static void lts_aga_fm2_ehb0_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); - } + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); - } - loaded_pix = getbpl6_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -17591,7 +29163,7 @@ static void lts_aga_fm2_ehb0_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb1_p6_ihires_dhires_spr(void) +static void lts_aga_fm2_n0_p8_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -17603,7 +29175,6 @@ static void lts_aga_fm2_ehb1_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -17611,35 +29182,34 @@ static void lts_aga_fm2_ehb1_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); - } + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } - loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl8_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -17647,48 +29217,38 @@ static void lts_aga_fm2_ehb1_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); - } + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } - loaded_pix = getbpl6_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pix = getbpl8_64(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -17724,7 +29284,7 @@ static void lts_aga_fm2_ehb1_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ham0_p6_ihires_dhires_spr(void) +static void lts_aga_fm2_n1_p8_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -17736,7 +29296,6 @@ static void lts_aga_fm2_ham0_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -17744,26 +29303,21 @@ static void lts_aga_fm2_ham0_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); } - loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -17771,39 +29325,23 @@ static void lts_aga_fm2_ham0_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); } - loaded_pix = getbpl6_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -17839,7 +29377,7 @@ static void lts_aga_fm2_ham0_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p6_ihires_dhires_spr(void) +static void lts_aga_fm2_n1_p8_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -17851,7 +29389,6 @@ static void lts_aga_fm2_ham1_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -17859,29 +29396,40 @@ static void lts_aga_fm2_ham1_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } - loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl8_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -17889,42 +29437,44 @@ static void lts_aga_fm2_ham1_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } - loaded_pix = getbpl6_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pix = getbpl8_64(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -17960,7 +29510,7 @@ static void lts_aga_fm2_ham1_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p6_ihires_dhires_spr(void) +static void lts_aga_fm2_dpf0_p8_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -17972,7 +29522,6 @@ static void lts_aga_fm2_kehb0_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -17980,27 +29529,23 @@ static void lts_aga_fm2_kehb0_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); - } - loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -18008,40 +29553,25 @@ static void lts_aga_fm2_kehb0_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; - } - last_bpl_pix = pix2; - } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); - } - loaded_pix = getbpl6_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } + last_bpl_pix = pix2; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -18077,7 +29607,7 @@ static void lts_aga_fm2_kehb0_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_kehb1_p6_ihires_dhires_spr(void) +static void lts_aga_fm2_dpf0_p8_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -18089,7 +29619,6 @@ static void lts_aga_fm2_kehb1_p6_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -18097,30 +29626,44 @@ static void lts_aga_fm2_kehb1_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } - loaded_pix = getbpl6_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl8_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -18128,43 +29671,48 @@ static void lts_aga_fm2_kehb1_p6_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } - loaded_pix = getbpl6_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pix = getbpl8_64(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -18200,7 +29748,7 @@ static void lts_aga_fm2_kehb1_p6_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_n0_p8_ihires_dhires_spr(void) +static void lts_aga_fm2_dpf1_p8_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -18212,7 +29760,6 @@ static void lts_aga_fm2_n0_p8_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -18220,26 +29767,26 @@ static void lts_aga_fm2_n0_p8_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); } - loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -18247,39 +29794,28 @@ static void lts_aga_fm2_n0_p8_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); } - loaded_pix = getbpl8_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -18315,7 +29851,7 @@ static void lts_aga_fm2_n0_p8_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_n1_p8_ihires_dhires_spr(void) +static void lts_aga_fm2_dpf1_p8_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -18327,7 +29863,6 @@ static void lts_aga_fm2_n1_p8_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -18335,29 +29870,50 @@ static void lts_aga_fm2_n1_p8_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -18365,42 +29921,54 @@ static void lts_aga_fm2_n1_p8_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -18436,7 +30004,23 @@ static void lts_aga_fm2_n1_p8_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p8_ihires_dhires_spr(void) +static void lts_aga_fm2_ehb0_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -18448,7 +30032,6 @@ static void lts_aga_fm2_dpf0_p8_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -18456,31 +30039,33 @@ static void lts_aga_fm2_dpf0_p8_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl8_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -18488,44 +30073,35 @@ static void lts_aga_fm2_dpf0_p8_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl8_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + decode_ham_pixel_aga(pix3); } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -18561,7 +30137,7 @@ static void lts_aga_fm2_dpf0_p8_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p8_ihires_dhires_spr(void) +static void lts_aga_fm2_ham0_p8_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -18573,7 +30149,6 @@ static void lts_aga_fm2_dpf1_p8_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -18581,34 +30156,34 @@ static void lts_aga_fm2_dpf1_p8_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -18616,47 +30191,38 @@ static void lts_aga_fm2_dpf1_p8_ihires_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = decode_ham_pixel_aga(pix3); } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -18692,15 +30258,7 @@ static void lts_aga_fm2_dpf1_p8_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p8_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p8_ihires_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p8_ihires_dhires_spr(void) +static void lts_aga_fm2_ham1_p8_ishres_dhires(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -18712,7 +30270,6 @@ static void lts_aga_fm2_ham0_p8_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -18725,21 +30282,34 @@ static void lts_aga_fm2_ham0_p8_ihires_dhires_spr(void) last_bpl_pix = pix0; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } - loaded_pixs[0] = loaded_pix; + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -18752,34 +30322,36 @@ static void lts_aga_fm2_ham0_p8_ihires_dhires_spr(void) last_bpl_pix = pix2; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + decode_ham_pixel_aga(pix3); } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -18815,7 +30387,7 @@ static void lts_aga_fm2_ham0_p8_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p8_ihires_dhires_spr(void) +static void lts_aga_fm2_ham1_p8_ishres_dhires_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -18827,7 +30399,6 @@ static void lts_aga_fm2_ham1_p8_ihires_dhires_spr(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -18840,24 +30411,35 @@ static void lts_aga_fm2_ham1_p8_ihires_dhires_spr(void) last_bpl_pix = pix0; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -18870,37 +30452,39 @@ static void lts_aga_fm2_ham1_p8_ihires_dhires_spr(void) last_bpl_pix = pix2; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = decode_ham_pixel_aga(pix3); } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -18936,15 +30520,23 @@ static void lts_aga_fm2_ham1_p8_ihires_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p8_ihires_dhires_spr(void) +static void lts_aga_fm2_kehb0_p8_ishres_dhires(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p8_ihires_dhires_spr(void) +static void lts_aga_fm2_kehb0_p8_ishres_dhires_filtered(void) { lts_null(); } -static void lts_aga_fm2_n0_p2_ishres_dhires(void) +static void lts_aga_fm2_kehb1_p8_ishres_dhires(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ishres_dhires_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p2_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -18956,6 +30548,7 @@ static void lts_aga_fm2_n0_p2_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -18972,9 +30565,18 @@ static void lts_aga_fm2_n0_p2_ishres_dhires(void) copybpl2_64(); } loaded_pix = getbpl2_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; shiftbpl2_64(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -18991,11 +30593,31 @@ static void lts_aga_fm2_n0_p2_ishres_dhires(void) copybpl2_64(); } loaded_pix = getbpl2_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; shiftbpl2_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -19031,7 +30653,7 @@ static void lts_aga_fm2_n0_p2_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_n1_p2_ishres_dhires(void) +static void lts_aga_fm2_n0_p2_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -19043,6 +30665,7 @@ static void lts_aga_fm2_n1_p2_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -19056,15 +30679,37 @@ static void lts_aga_fm2_n1_p2_ishres_dhires(void) } shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o_64(); + copybpl2_64(); } loaded_pix = getbpl2_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -19078,17 +30723,54 @@ static void lts_aga_fm2_n1_p2_ishres_dhires(void) } shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o_64(); + copybpl2_64(); } loaded_pix = getbpl2_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -19124,7 +30806,7 @@ static void lts_aga_fm2_n1_p2_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p2_ishres_dhires(void) +static void lts_aga_fm2_n1_p2_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -19136,6 +30818,7 @@ static void lts_aga_fm2_dpf0_p2_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -19143,23 +30826,30 @@ static void lts_aga_fm2_dpf0_p2_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2_64(); + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); } loaded_pix = getbpl2_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; shiftbpl2_64(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -19167,25 +30857,43 @@ static void lts_aga_fm2_dpf0_p2_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2_64(); + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); } loaded_pix = getbpl2_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; shiftbpl2_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -19221,7 +30929,7 @@ static void lts_aga_fm2_dpf0_p2_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p2_ishres_dhires(void) +static void lts_aga_fm2_n1_p2_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -19233,6 +30941,7 @@ static void lts_aga_fm2_dpf1_p2_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -19240,12 +30949,7 @@ static void lts_aga_fm2_dpf1_p2_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } @@ -19257,9 +30961,37 @@ static void lts_aga_fm2_dpf1_p2_ishres_dhires(void) copybpl2o_64(); } loaded_pix = getbpl2_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -19267,12 +30999,7 @@ static void lts_aga_fm2_dpf1_p2_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } @@ -19284,11 +31011,54 @@ static void lts_aga_fm2_dpf1_p2_ishres_dhires(void) copybpl2o_64(); } loaded_pix = getbpl2_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -19324,31 +31094,7 @@ static void lts_aga_fm2_dpf1_p2_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p2_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p2_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p2_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p2_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p2_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p2_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p4_ishres_dhires(void) +static void lts_aga_fm2_dpf0_p2_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -19360,6 +31106,7 @@ static void lts_aga_fm2_n0_p4_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -19367,18 +31114,32 @@ static void lts_aga_fm2_n0_p4_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl2_64(); + } + loaded_pix = getbpl2_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + shiftbpl2_64(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -19386,20 +31147,45 @@ static void lts_aga_fm2_n0_p4_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl4_64(); + shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl2_64(); + } + loaded_pix = getbpl2_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; - shiftbpl4_64(); + shiftbpl2_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -19435,7 +31221,7 @@ static void lts_aga_fm2_n0_p4_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_n1_p4_ishres_dhires(void) +static void lts_aga_fm2_dpf0_p2_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -19447,6 +31233,7 @@ static void lts_aga_fm2_n1_p4_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -19454,21 +31241,53 @@ static void lts_aga_fm2_n1_p4_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); + copybpl2_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + loaded_pix = getbpl2_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -19476,23 +31295,70 @@ static void lts_aga_fm2_n1_p4_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl4_64(); + shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); + copybpl2_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + loaded_pix = getbpl2_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; - shiftbpl4_64(); + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + } + last_bpl_pix = pix3; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -19528,7 +31394,7 @@ static void lts_aga_fm2_n1_p4_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p4_ishres_dhires(void) +static void lts_aga_fm2_dpf1_p2_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -19540,6 +31406,7 @@ static void lts_aga_fm2_dpf0_p4_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -19556,14 +31423,26 @@ static void lts_aga_fm2_dpf0_p4_ishres_dhires(void) } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + shiftbpl2_64(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -19580,16 +31459,39 @@ static void lts_aga_fm2_dpf0_p4_ishres_dhires(void) } last_bpl_pix = pix2; } - shiftbpl4_64(); + shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; - shiftbpl4_64(); + shiftbpl2_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -19625,7 +31527,7 @@ static void lts_aga_fm2_dpf0_p4_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p4_ishres_dhires(void) +static void lts_aga_fm2_dpf1_p2_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -19637,6 +31539,7 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -19653,17 +31556,50 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires(void) } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); + copybpl2e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -19680,19 +31616,67 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires(void) } last_bpl_pix = pix2; } - shiftbpl4_64(); + shiftbpl2_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); + copybpl2e_64(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; - shiftbpl4_64(); + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + } + last_bpl_pix = pix3; + } + shiftbpl2_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl2e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl2o_64(); + } + loaded_pix = getbpl2_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -19728,31 +31712,55 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p4_ishres_dhires(void) +static void lts_aga_fm2_ehb0_p2_ishres_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p4_ishres_dhires(void) +static void lts_aga_fm2_ehb0_p2_ishres_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_ham0_p4_ishres_dhires(void) +static void lts_aga_fm2_ehb1_p2_ishres_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_ham1_p4_ishres_dhires(void) +static void lts_aga_fm2_ehb1_p2_ishres_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_kehb0_p4_ishres_dhires(void) +static void lts_aga_fm2_ham0_p2_ishres_dhires_spr(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p4_ishres_dhires(void) +static void lts_aga_fm2_ham0_p2_ishres_dhires_spr_filtered(void) { lts_null(); } -static void lts_aga_fm2_n0_p6_ishres_dhires(void) +static void lts_aga_fm2_ham1_p2_ishres_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p2_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p2_ishres_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p2_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p2_ishres_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p2_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -19764,6 +31772,7 @@ static void lts_aga_fm2_n0_p6_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -19775,14 +31784,23 @@ static void lts_aga_fm2_n0_p6_ishres_dhires(void) } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + shiftbpl4_64(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -19794,16 +31812,36 @@ static void lts_aga_fm2_n0_p6_ishres_dhires(void) } last_bpl_pix = pix2; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; - shiftbpl6_64(); + shiftbpl4_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -19839,7 +31877,7 @@ static void lts_aga_fm2_n0_p6_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_n1_p6_ishres_dhires(void) +static void lts_aga_fm2_n0_p4_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -19851,6 +31889,7 @@ static void lts_aga_fm2_n1_p6_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -19862,17 +31901,39 @@ static void lts_aga_fm2_n1_p6_ishres_dhires(void) } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + copybpl4_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -19884,19 +31945,56 @@ static void lts_aga_fm2_n1_p6_ishres_dhires(void) } last_bpl_pix = pix2; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + copybpl4_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + loaded_pix = getbpl4_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; - shiftbpl6_64(); + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -19932,7 +32030,7 @@ static void lts_aga_fm2_n1_p6_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p6_ishres_dhires(void) +static void lts_aga_fm2_n1_p4_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -19944,6 +32042,7 @@ static void lts_aga_fm2_dpf0_p6_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -19951,23 +32050,30 @@ static void lts_aga_fm2_dpf0_p6_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + shiftbpl4_64(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -19975,25 +32081,43 @@ static void lts_aga_fm2_dpf0_p6_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; - shiftbpl6_64(); + shiftbpl4_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -20029,7 +32153,7 @@ static void lts_aga_fm2_dpf0_p6_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p6_ishres_dhires(void) +static void lts_aga_fm2_n1_p4_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -20041,6 +32165,7 @@ static void lts_aga_fm2_dpf1_p6_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -20048,55 +32173,116 @@ static void lts_aga_fm2_dpf1_p6_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + copybpl4e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { dpix_val2 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix2 = loaded_pixs[2]; - clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; } - last_bpl_pix = pix2; + last_bpl_pix = pix3; } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); } - loaded_pix = getbpl6_64(); - loaded_pixs[2] = loaded_pix; - shiftbpl6_64(); + loaded_pix = getbpl4_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -20132,7 +32318,7 @@ static void lts_aga_fm2_dpf1_p6_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p6_ishres_dhires(void) +static void lts_aga_fm2_dpf0_p4_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -20144,6 +32330,7 @@ static void lts_aga_fm2_ehb0_p6_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -20151,24 +32338,32 @@ static void lts_aga_fm2_ehb0_p6_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + shiftbpl4_64(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -20176,26 +32371,45 @@ static void lts_aga_fm2_ehb0_p6_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; - shiftbpl6_64(); + shiftbpl4_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -20231,7 +32445,7 @@ static void lts_aga_fm2_ehb0_p6_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ehb1_p6_ishres_dhires(void) +static void lts_aga_fm2_dpf0_p4_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -20243,6 +32457,7 @@ static void lts_aga_fm2_ehb1_p6_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -20250,27 +32465,53 @@ static void lts_aga_fm2_ehb1_p6_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + copybpl4_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -20278,29 +32519,70 @@ static void lts_aga_fm2_ehb1_p6_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + copybpl4_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + loaded_pix = getbpl4_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; - shiftbpl6_64(); + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + } + last_bpl_pix = pix3; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -20336,7 +32618,7 @@ static void lts_aga_fm2_ehb1_p6_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ham0_p6_ishres_dhires(void) +static void lts_aga_fm2_dpf1_p4_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -20348,6 +32630,7 @@ static void lts_aga_fm2_ham0_p6_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -20355,33 +32638,35 @@ static void lts_aga_fm2_ham0_p6_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl4e_64(); } - loaded_pix = getbpl6_64(); - loaded_pixs[0] = loaded_pix; - uae_u8 pix1 = 0; - uae_u32 dpix_val1 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val1 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); - } - last_bpl_pix = pix1; + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl6_64(); - loaded_pixs[1] = loaded_pix; + loaded_pixs[0] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -20389,35 +32674,48 @@ static void lts_aga_fm2_ham0_p6_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl4e_64(); } - loaded_pix = getbpl6_64(); - loaded_pixs[2] = loaded_pix; - uae_u8 pix3 = 0; - uae_u32 dpix_val3 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val3 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix3 = loaded_pixs[3]; - decode_ham_pixel_aga(pix3); - } - last_bpl_pix = pix3; + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + loaded_pix = getbpl4_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl6_64(); - loaded_pixs[3] = loaded_pix; + loaded_pixs[2] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -20453,7 +32751,7 @@ static void lts_aga_fm2_ham0_p6_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p6_ishres_dhires(void) +static void lts_aga_fm2_dpf1_p4_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -20465,6 +32763,7 @@ static void lts_aga_fm2_ham1_p6_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -20472,18 +32771,31 @@ static void lts_aga_fm2_ham1_p6_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + copybpl4e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl6_64(); loaded_pixs[0] = loaded_pix; uae_u8 pix1 = 0; uae_u32 dpix_val1 = BLANK_COLOR; @@ -20491,20 +32803,27 @@ static void lts_aga_fm2_ham1_p6_ishres_dhires(void) dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + copybpl4e_64(); } if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl4o_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -20512,18 +32831,31 @@ static void lts_aga_fm2_ham1_p6_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + copybpl4e_64(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl6_64(); loaded_pixs[2] = loaded_pix; uae_u8 pix3 = 0; uae_u32 dpix_val3 = BLANK_COLOR; @@ -20531,22 +32863,44 @@ static void lts_aga_fm2_ham1_p6_ishres_dhires(void) dpix_val3 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix3 = loaded_pixs[3]; - decode_ham_pixel_aga(pix3); + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; } last_bpl_pix = pix3; } - shiftbpl6_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + copybpl4e_64(); } if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl4o_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl4_64(); loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -20582,7 +32936,55 @@ static void lts_aga_fm2_ham1_p6_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p6_ishres_dhires(void) +static void lts_aga_fm2_ehb0_p4_ishres_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ishres_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ishres_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ishres_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ishres_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ishres_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p6_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -20594,6 +32996,7 @@ static void lts_aga_fm2_kehb0_p6_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -20601,8 +33004,7 @@ static void lts_aga_fm2_kehb0_p6_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } @@ -20611,9 +33013,18 @@ static void lts_aga_fm2_kehb0_p6_ishres_dhires(void) copybpl6_64(); } loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; shiftbpl6_64(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -20621,8 +33032,7 @@ static void lts_aga_fm2_kehb0_p6_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } @@ -20631,11 +33041,31 @@ static void lts_aga_fm2_kehb0_p6_ishres_dhires(void) copybpl6_64(); } loaded_pix = getbpl6_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; shiftbpl6_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -20671,7 +33101,7 @@ static void lts_aga_fm2_kehb0_p6_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_kehb1_p6_ishres_dhires(void) +static void lts_aga_fm2_n0_p6_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -20683,29 +33113,51 @@ static void lts_aga_fm2_kehb1_p6_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { - dpix_val0 = bordercolor; + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = loaded_pixs[0]; - clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; } - last_bpl_pix = pix0; + last_bpl_pix = pix1; } shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); } loaded_pix = getbpl6_64(); - loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -20713,24 +33165,60 @@ static void lts_aga_fm2_kehb1_p6_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl6_64(); } loaded_pix = getbpl6_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -20766,7 +33254,7 @@ static void lts_aga_fm2_kehb1_p6_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_n0_p8_ishres_dhires(void) +static void lts_aga_fm2_n1_p6_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -20778,6 +33266,7 @@ static void lts_aga_fm2_n0_p8_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -20789,14 +33278,26 @@ static void lts_aga_fm2_n0_p8_ishres_dhires(void) } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; - shiftbpl8_64(); + shiftbpl6_64(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -20808,16 +33309,39 @@ static void lts_aga_fm2_n0_p8_ishres_dhires(void) } last_bpl_pix = pix2; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; - shiftbpl8_64(); + shiftbpl6_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -20853,7 +33377,7 @@ static void lts_aga_fm2_n0_p8_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_n1_p8_ishres_dhires(void) +static void lts_aga_fm2_n1_p6_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -20865,6 +33389,7 @@ static void lts_aga_fm2_n1_p8_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -20876,17 +33401,45 @@ static void lts_aga_fm2_n1_p8_ishres_dhires(void) } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl6e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; - shiftbpl8_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -20898,19 +33451,62 @@ static void lts_aga_fm2_n1_p8_ishres_dhires(void) } last_bpl_pix = pix2; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl6e_64(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; - shiftbpl8_64(); + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -20946,7 +33542,7 @@ static void lts_aga_fm2_n1_p8_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p8_ishres_dhires(void) +static void lts_aga_fm2_dpf0_p6_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -20958,6 +33554,7 @@ static void lts_aga_fm2_dpf0_p8_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -20974,14 +33571,23 @@ static void lts_aga_fm2_dpf0_p8_ishres_dhires(void) } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; - shiftbpl8_64(); + shiftbpl6_64(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -20998,16 +33604,36 @@ static void lts_aga_fm2_dpf0_p8_ishres_dhires(void) } last_bpl_pix = pix2; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; - shiftbpl8_64(); + shiftbpl6_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -21043,7 +33669,7 @@ static void lts_aga_fm2_dpf0_p8_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p8_ishres_dhires(void) +static void lts_aga_fm2_dpf0_p6_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -21055,6 +33681,7 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -21071,17 +33698,44 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires(void) } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl6_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; - shiftbpl8_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -21098,19 +33752,61 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires(void) } last_bpl_pix = pix2; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl6_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + loaded_pix = getbpl6_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; - shiftbpl8_64(); + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + } + last_bpl_pix = pix3; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -21146,15 +33842,7 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p8_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p8_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p8_ishres_dhires(void) +static void lts_aga_fm2_dpf1_p6_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -21166,6 +33854,7 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -21173,33 +33862,35 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl6e_64(); } - loaded_pix = getbpl8_64(); - loaded_pixs[0] = loaded_pix; - uae_u8 pix1 = 0; - uae_u32 dpix_val1 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val1 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); - } - last_bpl_pix = pix1; + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl8_64(); - loaded_pixs[1] = loaded_pix; + loaded_pixs[0] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -21207,35 +33898,48 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl6e_64(); } - loaded_pix = getbpl8_64(); - loaded_pixs[2] = loaded_pix; - uae_u8 pix3 = 0; - uae_u32 dpix_val3 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val3 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix3 = loaded_pixs[3]; - decode_ham_pixel_aga(pix3); - } - last_bpl_pix = pix3; + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + loaded_pix = getbpl6_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl8_64(); - loaded_pixs[3] = loaded_pix; + loaded_pixs[2] = loaded_pix; + shiftbpl6_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + } + } dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -21271,7 +33975,7 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p8_ishres_dhires(void) +static void lts_aga_fm2_dpf1_p6_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -21283,6 +33987,7 @@ static void lts_aga_fm2_ham1_p8_ishres_dhires(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { @@ -21290,18 +33995,31 @@ static void lts_aga_fm2_ham1_p8_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl6e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; uae_u8 pix1 = 0; uae_u32 dpix_val1 = BLANK_COLOR; @@ -21309,20 +34027,27 @@ static void lts_aga_fm2_ham1_p8_ishres_dhires(void) dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl6e_64(); } if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl6o_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl6_64(); loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u32 dpix_val2 = BLANK_COLOR; if (!denise_blank_active) { @@ -21330,18 +34055,31 @@ static void lts_aga_fm2_ham1_p8_ishres_dhires(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + loaded_pix = getbpl6_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; uae_u8 pix3 = 0; uae_u32 dpix_val3 = BLANK_COLOR; @@ -21349,22 +34087,44 @@ static void lts_aga_fm2_ham1_p8_ishres_dhires(void) dpix_val3 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix3 = loaded_pixs[3]; - decode_ham_pixel_aga(pix3); + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; } last_bpl_pix = pix3; } - shiftbpl8_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl6e_64(); } if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl6o_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl6_64(); loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -21400,15 +34160,7 @@ static void lts_aga_fm2_ham1_p8_ishres_dhires(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p8_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p8_ishres_dhires(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p2_ishres_dhires_spr(void) +static void lts_aga_fm2_ehb0_p6_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -21428,15 +34180,21 @@ static void lts_aga_fm2_n0_p2_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } } last_bpl_pix = pix0; } - shiftbpl2_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2_64(); + copybpl6_64(); } - loaded_pix = getbpl2_64(); + loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -21446,7 +34204,7 @@ static void lts_aga_fm2_n0_p2_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl2_64(); + shiftbpl6_64(); internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -21456,15 +34214,21 @@ static void lts_aga_fm2_n0_p2_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + pix2 ^= bplcon4_denise_xor_val; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } } last_bpl_pix = pix2; } - shiftbpl2_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2_64(); + copybpl6_64(); } - loaded_pix = getbpl2_64(); + loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -21474,7 +34238,7 @@ static void lts_aga_fm2_n0_p2_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl2_64(); + shiftbpl6_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -21525,7 +34289,7 @@ static void lts_aga_fm2_n0_p2_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_n1_p2_ishres_dhires_spr(void) +static void lts_aga_fm2_ehb0_p6_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -21545,18 +34309,21 @@ static void lts_aga_fm2_n1_p2_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); + } } last_bpl_pix = pix0; } - shiftbpl2_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o_64(); + copybpl6_64(); } - loaded_pix = getbpl2_64(); + loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -21566,7 +34333,29 @@ static void lts_aga_fm2_n1_p2_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl2_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + if (!(pix1 & 0x20)) { + dpix_val1 = denise_colors.acolors[pix1]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix1 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val1 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -21576,18 +34365,21 @@ static void lts_aga_fm2_n1_p2_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + pix2 ^= bplcon4_denise_xor_val; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); + } } last_bpl_pix = pix2; } - shiftbpl2_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o_64(); + copybpl6_64(); } - loaded_pix = getbpl2_64(); + loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -21597,22 +34389,48 @@ static void lts_aga_fm2_n1_p2_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl2_64(); + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + pix3 ^= bplcon4_denise_xor_val; + if (!(pix3 & 0x20)) { + dpix_val3 = denise_colors.acolors[pix3]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix3 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val3 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix3; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -21648,7 +34466,7 @@ static void lts_aga_fm2_n1_p2_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p2_ishres_dhires_spr(void) +static void lts_aga_fm2_ehb1_p6_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -21668,20 +34486,24 @@ static void lts_aga_fm2_dpf0_p2_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl2_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2_64(); + copybpl6e_64(); } - loaded_pix = getbpl2_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -21691,7 +34513,7 @@ static void lts_aga_fm2_dpf0_p2_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl2_64(); + shiftbpl6_64(); internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -21701,20 +34523,24 @@ static void lts_aga_fm2_dpf0_p2_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; + pix2 ^= bplcon4_denise_xor_val; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl2_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2_64(); + copybpl6e_64(); } - loaded_pix = getbpl2_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -21724,7 +34550,7 @@ static void lts_aga_fm2_dpf0_p2_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl2_64(); + shiftbpl6_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -21775,7 +34601,7 @@ static void lts_aga_fm2_dpf0_p2_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p2_ishres_dhires_spr(void) +static void lts_aga_fm2_ehb1_p6_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -21795,23 +34621,24 @@ static void lts_aga_fm2_dpf1_p2_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; + pix0 ^= bplcon4_denise_xor_val; + if (!(pix0 & 0x20)) { + dpix_val0 = denise_colors.acolors[pix0]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val0 = CONVERT_RGB(v); } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl2_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e_64(); + copybpl6e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o_64(); + copybpl6o_64(); } - loaded_pix = getbpl2_64(); + loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -21821,7 +34648,32 @@ static void lts_aga_fm2_dpf1_p2_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl2_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + if (!(pix1 & 0x20)) { + dpix_val1 = denise_colors.acolors[pix1]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix1 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val1 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -21831,23 +34683,24 @@ static void lts_aga_fm2_dpf1_p2_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; + pix2 ^= bplcon4_denise_xor_val; + if (!(pix2 & 0x20)) { + dpix_val2 = denise_colors.acolors[pix2]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val2 = CONVERT_RGB(v); } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl2_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl2e_64(); + copybpl6e_64(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl2o_64(); + copybpl6o_64(); } - loaded_pix = getbpl2_64(); + loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -21857,22 +34710,51 @@ static void lts_aga_fm2_dpf1_p2_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl2_64(); + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + pix3 ^= bplcon4_denise_xor_val; + if (!(pix3 & 0x20)) { + dpix_val3 = denise_colors.acolors[pix3]; + } else { + uae_u32 v = (denise_colors.color_regs_aga[pix3 & 0x1f] >> 1) & 0x7f7f7f; + dpix_val3 = CONVERT_RGB(v); + } + } + last_bpl_pix = pix3; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -21908,31 +34790,7 @@ static void lts_aga_fm2_dpf1_p2_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p2_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p2_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p2_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p2_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p2_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p2_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p4_ishres_dhires_spr(void) +static void lts_aga_fm2_ham0_p6_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -21952,15 +34810,15 @@ static void lts_aga_fm2_n0_p4_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl6_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -21970,7 +34828,22 @@ static void lts_aga_fm2_n0_p4_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -21980,15 +34853,15 @@ static void lts_aga_fm2_n0_p4_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } - shiftbpl4_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl6_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -21998,7 +34871,22 @@ static void lts_aga_fm2_n0_p4_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl4_64(); + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + decode_ham_pixel_aga(pix3); + } + last_bpl_pix = pix3; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -22049,7 +34937,7 @@ static void lts_aga_fm2_n0_p4_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_n1_p4_ishres_dhires_spr(void) +static void lts_aga_fm2_ham0_p6_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -22069,18 +34957,15 @@ static void lts_aga_fm2_n1_p4_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + copybpl6_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -22090,7 +34975,23 @@ static void lts_aga_fm2_n1_p4_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -22100,18 +35001,15 @@ static void lts_aga_fm2_n1_p4_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } - shiftbpl4_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + copybpl6_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -22121,22 +35019,42 @@ static void lts_aga_fm2_n1_p4_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl4_64(); + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = decode_ham_pixel_aga(pix3); + } + last_bpl_pix = pix3; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -22172,7 +35090,7 @@ static void lts_aga_fm2_n1_p4_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p4_ishres_dhires_spr(void) +static void lts_aga_fm2_ham1_p6_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -22192,20 +35110,18 @@ static void lts_aga_fm2_dpf0_p4_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl6e_64(); } - loaded_pix = getbpl4_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -22215,7 +35131,25 @@ static void lts_aga_fm2_dpf0_p4_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -22225,20 +35159,18 @@ static void lts_aga_fm2_dpf0_p4_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } - shiftbpl4_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl6e_64(); } - loaded_pix = getbpl4_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -22248,7 +35180,25 @@ static void lts_aga_fm2_dpf0_p4_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl4_64(); + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + decode_ham_pixel_aga(pix3); + } + last_bpl_pix = pix3; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -22299,7 +35249,7 @@ static void lts_aga_fm2_dpf0_p4_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p4_ishres_dhires_spr(void) +static void lts_aga_fm2_ham1_p6_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -22319,23 +35269,18 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); + copybpl6e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + copybpl6o_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -22345,7 +35290,26 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -22355,23 +35319,18 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } - shiftbpl4_64(); + shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); + copybpl6e_64(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + copybpl6o_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -22381,22 +35340,45 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl4_64(); + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = decode_ham_pixel_aga(pix3); + } + last_bpl_pix = pix3; + } + shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -22432,31 +35414,7 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p4_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p4_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p4_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p4_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p4_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p4_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p6_ishres_dhires_spr(void) +static void lts_aga_fm2_kehb0_p6_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -22476,7 +35434,8 @@ static void lts_aga_fm2_n0_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } @@ -22504,7 +35463,8 @@ static void lts_aga_fm2_n0_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; } last_bpl_pix = pix2; } @@ -22573,7 +35533,7 @@ static void lts_aga_fm2_n0_p6_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_n1_p6_ishres_dhires_spr(void) +static void lts_aga_fm2_kehb0_p6_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -22593,16 +35553,14 @@ static void lts_aga_fm2_n1_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl6_64(); } loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; @@ -22614,7 +35572,24 @@ static void lts_aga_fm2_n1_p6_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[pix1 & 31]; + } + last_bpl_pix = pix1; + } shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -22624,16 +35599,14 @@ static void lts_aga_fm2_n1_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; } last_bpl_pix = pix2; } shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl6_64(); } loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; @@ -22645,22 +35618,43 @@ static void lts_aga_fm2_n1_p6_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + pix3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[pix3 & 31]; + } + last_bpl_pix = pix3; + } shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -22696,7 +35690,7 @@ static void lts_aga_fm2_n1_p6_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p6_ishres_dhires_spr(void) +static void lts_aga_fm2_kehb1_p6_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -22716,18 +35710,17 @@ static void lts_aga_fm2_dpf0_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } loaded_pix = getbpl6_64(); uae_u32 sv0 = 0; @@ -22749,18 +35742,17 @@ static void lts_aga_fm2_dpf0_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; } last_bpl_pix = pix2; } shiftbpl6_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); } loaded_pix = getbpl6_64(); uae_u32 sv2 = 0; @@ -22823,7 +35815,7 @@ static void lts_aga_fm2_dpf0_p6_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p6_ishres_dhires_spr(void) +static void lts_aga_fm2_kehb1_p6_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -22843,12 +35835,8 @@ static void lts_aga_fm2_dpf1_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + pix0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[pix0 & 31]; } last_bpl_pix = pix0; } @@ -22869,7 +35857,27 @@ static void lts_aga_fm2_dpf1_p6_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + pix1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[pix1 & 31]; + } + last_bpl_pix = pix1; + } shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -22879,12 +35887,8 @@ static void lts_aga_fm2_dpf1_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + pix2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[pix2 & 31]; } last_bpl_pix = pix2; } @@ -22905,22 +35909,46 @@ static void lts_aga_fm2_dpf1_p6_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + pix3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[pix3 & 31]; + } + last_bpl_pix = pix3; + } shiftbpl6_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl6e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl6o_64(); + } + loaded_pix = getbpl6_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -22956,7 +35984,7 @@ static void lts_aga_fm2_dpf1_p6_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p6_ishres_dhires_spr(void) +static void lts_aga_fm2_n0_p8_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -22976,21 +36004,15 @@ static void lts_aga_fm2_ehb0_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); - } + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl8_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -23000,7 +36022,7 @@ static void lts_aga_fm2_ehb0_p6_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + shiftbpl8_64(); internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -23010,21 +36032,15 @@ static void lts_aga_fm2_ehb0_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); - } + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl8_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -23034,7 +36050,7 @@ static void lts_aga_fm2_ehb0_p6_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl6_64(); + shiftbpl8_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -23085,7 +36101,7 @@ static void lts_aga_fm2_ehb0_p6_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb1_p6_ishres_dhires_spr(void) +static void lts_aga_fm2_n0_p8_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -23105,24 +36121,15 @@ static void lts_aga_fm2_ehb1_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - if (!(pix0 & 0x20)) { - dpix_val0 = denise_colors.acolors[pix0]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix0 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val0 = CONVERT_RGB(v); - } + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl8_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -23132,7 +36139,23 @@ static void lts_aga_fm2_ehb1_p6_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -23142,24 +36165,15 @@ static void lts_aga_fm2_ehb1_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - if (!(pix2 & 0x20)) { - dpix_val2 = denise_colors.acolors[pix2]; - } else { - uae_u32 v = (denise_colors.color_regs_aga[pix2 & 0x1f] >> 1) & 0x7f7f7f; - dpix_val2 = CONVERT_RGB(v); - } + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl8_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -23169,22 +36183,42 @@ static void lts_aga_fm2_ehb1_p6_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl6_64(); + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -23220,7 +36254,7 @@ static void lts_aga_fm2_ehb1_p6_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ham0_p6_ishres_dhires_spr(void) +static void lts_aga_fm2_n1_p8_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -23240,15 +36274,18 @@ static void lts_aga_fm2_ham0_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl8e_64(); } - loaded_pix = getbpl6_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -23258,22 +36295,7 @@ static void lts_aga_fm2_ham0_p6_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; - uae_u8 pix1 = 0; - uae_u32 dpix_val1 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val1 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); - } - last_bpl_pix = pix1; - } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); - } - loaded_pix = getbpl6_64(); - loaded_pixs[1] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -23283,15 +36305,18 @@ static void lts_aga_fm2_ham0_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl8e_64(); } - loaded_pix = getbpl6_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -23301,22 +36326,7 @@ static void lts_aga_fm2_ham0_p6_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; - uae_u8 pix3 = 0; - uae_u32 dpix_val3 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val3 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix3 = loaded_pixs[3]; - decode_ham_pixel_aga(pix3); - } - last_bpl_pix = pix3; - } - shiftbpl6_64(); - if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); - } - loaded_pix = getbpl6_64(); - loaded_pixs[3] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -23367,7 +36377,7 @@ static void lts_aga_fm2_ham0_p6_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p6_ishres_dhires_spr(void) +static void lts_aga_fm2_n1_p8_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -23387,18 +36397,18 @@ static void lts_aga_fm2_ham1_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + copybpl8e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl8o_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -23414,18 +36424,19 @@ static void lts_aga_fm2_ham1_p6_ishres_dhires_spr(void) dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix1; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + copybpl8e_64(); } if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl8o_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl8_64(); loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); @@ -23436,18 +36447,18 @@ static void lts_aga_fm2_ham1_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix2; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + copybpl8e_64(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl8o_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -23463,18 +36474,19 @@ static void lts_aga_fm2_ham1_p6_ishres_dhires_spr(void) dpix_val3 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix3 = loaded_pixs[3]; - decode_ham_pixel_aga(pix3); + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; } last_bpl_pix = pix3; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); + copybpl8e_64(); } if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl8o_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl8_64(); loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -23482,15 +36494,19 @@ static void lts_aga_fm2_ham1_p6_ishres_dhires_spr(void) uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -23526,7 +36542,7 @@ static void lts_aga_fm2_ham1_p6_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p6_ishres_dhires_spr(void) +static void lts_aga_fm2_dpf0_p8_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -23546,16 +36562,20 @@ static void lts_aga_fm2_kehb0_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl8_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -23565,7 +36585,7 @@ static void lts_aga_fm2_kehb0_p6_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + shiftbpl8_64(); internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -23575,16 +36595,20 @@ static void lts_aga_fm2_kehb0_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6_64(); + copybpl8_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -23594,7 +36618,7 @@ static void lts_aga_fm2_kehb0_p6_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl6_64(); + shiftbpl8_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -23645,7 +36669,7 @@ static void lts_aga_fm2_kehb0_p6_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_kehb1_p6_ishres_dhires_spr(void) +static void lts_aga_fm2_dpf0_p8_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -23665,19 +36689,20 @@ static void lts_aga_fm2_kehb1_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - pix0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[pix0 & 31]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl8_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -23687,7 +36712,28 @@ static void lts_aga_fm2_kehb1_p6_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl6_64(); + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -23697,19 +36743,20 @@ static void lts_aga_fm2_kehb1_p6_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - pix2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[pix2 & 31]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } - shiftbpl6_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl6e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl6o_64(); + copybpl8_64(); } - loaded_pix = getbpl6_64(); + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -23719,22 +36766,47 @@ static void lts_aga_fm2_kehb1_p6_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl6_64(); + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + } + last_bpl_pix = pix3; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -23770,7 +36842,7 @@ static void lts_aga_fm2_kehb1_p6_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_n0_p8_ishres_dhires_spr(void) +static void lts_aga_fm2_dpf1_p8_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -23790,13 +36862,21 @@ static void lts_aga_fm2_n0_p8_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; @@ -23818,13 +36898,21 @@ static void lts_aga_fm2_n0_p8_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; @@ -23887,7 +36975,7 @@ static void lts_aga_fm2_n0_p8_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_n1_p8_ishres_dhires_spr(void) +static void lts_aga_fm2_dpf1_p8_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -23907,7 +36995,12 @@ static void lts_aga_fm2_n1_p8_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } @@ -23928,7 +37021,31 @@ static void lts_aga_fm2_n1_p8_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -23938,7 +37055,12 @@ static void lts_aga_fm2_n1_p8_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } @@ -23959,22 +37081,50 @@ static void lts_aga_fm2_n1_p8_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + } + last_bpl_pix = pix3; + } shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -24010,7 +37160,23 @@ static void lts_aga_fm2_n1_p8_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p8_ishres_dhires_spr(void) +static void lts_aga_fm2_ehb0_p8_ishres_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ishres_dhires_spr(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -24030,12 +37196,7 @@ static void lts_aga_fm2_dpf0_p8_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } @@ -24053,7 +37214,22 @@ static void lts_aga_fm2_dpf0_p8_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -24063,12 +37239,7 @@ static void lts_aga_fm2_dpf0_p8_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } @@ -24086,7 +37257,22 @@ static void lts_aga_fm2_dpf0_p8_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + decode_ham_pixel_aga(pix3); + } + last_bpl_pix = pix3; + } shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -24137,7 +37323,7 @@ static void lts_aga_fm2_dpf0_p8_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p8_ishres_dhires_spr(void) +static void lts_aga_fm2_ham0_p8_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -24157,21 +37343,13 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl8_64(); } loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; @@ -24183,7 +37361,23 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires_spr(void) } } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -24193,21 +37387,13 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl8_64(); } loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; @@ -24219,22 +37405,42 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires_spr(void) } } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = decode_ham_pixel_aga(pix3); + } + last_bpl_pix = pix3; + } shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -24270,15 +37476,7 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p8_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p8_ishres_dhires_spr(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p8_ishres_dhires_spr(void) +static void lts_aga_fm2_ham1_p8_ishres_dhires_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -24304,7 +37502,10 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires_spr(void) } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; @@ -24328,7 +37529,10 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires_spr(void) } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } loaded_pix = getbpl8_64(); loaded_pixs[1] = loaded_pix; @@ -24347,7 +37551,10 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires_spr(void) } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; @@ -24371,7 +37578,10 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires_spr(void) } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } loaded_pix = getbpl8_64(); loaded_pixs[3] = loaded_pix; @@ -24425,7 +37635,7 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires_spr(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p8_ishres_dhires_spr(void) +static void lts_aga_fm2_ham1_p8_ishres_dhires_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -24472,7 +37682,8 @@ static void lts_aga_fm2_ham1_p8_ishres_dhires_spr(void) dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); } last_bpl_pix = pix1; } @@ -24521,7 +37732,8 @@ static void lts_aga_fm2_ham1_p8_ishres_dhires_spr(void) dpix_val3 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix3 = loaded_pixs[3]; - decode_ham_pixel_aga(pix3); + clxdat |= bplcoltable[pix3]; + dpix_val3 = decode_ham_pixel_aga(pix3); } last_bpl_pix = pix3; } @@ -24540,15 +37752,19 @@ static void lts_aga_fm2_ham1_p8_ishres_dhires_spr(void) uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; if (sv2) { uae_u32 spix2 = denise_render_sprites2(pix2, sv2); if (spix2) { dpix_val2 = denise_colors.acolors[spix2]; + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; uae_u32 t0 = dtbuf[h ^ lol][0]; #ifdef DEBUGGER @@ -24588,10 +37804,18 @@ static void lts_aga_fm2_kehb0_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p8_ishres_dhires_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p8_ishres_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p2_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -24755,6 +37979,10 @@ static void lts_aga_fm2_n0_p2_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p2_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -24962,6 +38190,10 @@ static void lts_aga_fm2_n1_p2_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p2_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -25145,6 +38377,10 @@ static void lts_aga_fm2_dpf0_p2_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p2_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -25372,30 +38608,58 @@ static void lts_aga_fm2_dpf1_p2_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p2_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p2_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p2_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm2_ham0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p2_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm2_ham1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p2_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p2_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p4_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -25559,6 +38823,10 @@ static void lts_aga_fm2_n0_p4_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p4_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -25766,6 +39034,10 @@ static void lts_aga_fm2_n1_p4_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p4_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -25949,6 +39221,10 @@ static void lts_aga_fm2_dpf0_p4_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p4_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -26176,30 +39452,58 @@ static void lts_aga_fm2_dpf1_p4_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p4_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p4_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p4_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm2_ham0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p4_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm2_ham1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p4_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p4_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -26363,6 +39667,10 @@ static void lts_aga_fm2_n0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -26570,6 +39878,10 @@ static void lts_aga_fm2_n1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -26753,6 +40065,10 @@ static void lts_aga_fm2_dpf0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -26980,6 +40296,10 @@ static void lts_aga_fm2_dpf1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -27167,6 +40487,10 @@ static void lts_aga_fm2_ehb0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_ehb0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -27398,6 +40722,10 @@ static void lts_aga_fm2_ehb1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_ehb1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -27561,6 +40889,10 @@ static void lts_aga_fm2_ham0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -27768,6 +41100,10 @@ static void lts_aga_fm2_ham1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -27935,6 +41271,10 @@ static void lts_aga_fm2_kehb0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_kehb0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -28146,6 +41486,10 @@ static void lts_aga_fm2_kehb1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_kehb1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p8_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -28309,7 +41653,222 @@ static void lts_aga_fm2_n0_p8_ilores_dshres(void) denise_cck++; } } -static void lts_aga_fm2_n1_p8_ilores_dshres(void) +static void lts_aga_fm2_n0_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p8_ilores_dshres(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 1; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 1; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 1; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix1; + } + bplshiftcnt[0] += 1; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 1; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 1) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 1; + uae_u8 pix2 = 0; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 1; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 1; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 1; + uae_u8 pix3 = 0; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + } + last_bpl_pix = pix3; + } + bplshiftcnt[0] += 1; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 1; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 3) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[3] = loaded_pix; + internal_pixel_cnt += 1; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtbuf[h][1] = dpix_val1; + dtbuf[h][2] = dpix_val2; + dtbuf[h][3] = dpix_val3; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + uae_u32 t1 = dtbuf[h ^ lol][1]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t1 = decode_denise_specials_debug(t1, cnt + 1); + } + #endif + *buf1++ = t1; + *buf2++ = t1; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + uae_u32 t3 = dtbuf[h ^ lol][3]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t3 = decode_denise_specials_debug(t3, cnt + 3); + } + #endif + *buf1++ = t3; + *buf2++ = t3; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p8_ilores_dshres(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -28328,32 +41887,26 @@ static void lts_aga_fm2_n1_p8_ilores_dshres(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 1; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); + shiftbpl8_64(); loaded_pix = getbpl8_64(); } if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl8_64(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); - } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 1; uae_u8 pix1 = 0; @@ -28363,32 +41916,26 @@ static void lts_aga_fm2_n1_p8_ilores_dshres(void) if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; clxdat |= bplcoltable[pix1]; - dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 1; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); + shiftbpl8_64(); loaded_pix = getbpl8_64(); } if (bpldat_copy[0] && ((cnt | 1) & 255) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl8_64(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 1) & 255) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); - } loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 1; uae_u8 pix2 = 0; @@ -28398,32 +41945,26 @@ static void lts_aga_fm2_n1_p8_ilores_dshres(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; } last_bpl_pix = pix2; } bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 1; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); + shiftbpl8_64(); loaded_pix = getbpl8_64(); } if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl8_64(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); - } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 1; uae_u8 pix3 = 0; @@ -28433,32 +41974,26 @@ static void lts_aga_fm2_n1_p8_ilores_dshres(void) if (denise_hdiw && bpl1dat_trigger) { pix3 = loaded_pixs[3]; clxdat |= bplcoltable[pix3]; - dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; } last_bpl_pix = pix3; } bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 1; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); + shiftbpl8_64(); loaded_pix = getbpl8_64(); } if (bpldat_copy[0] && ((cnt | 3) & 255) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl8_64(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 3) & 255) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); - } loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 1; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -28516,7 +42051,11 @@ static void lts_aga_fm2_n1_p8_ilores_dshres(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p8_ilores_dshres(void) +static void lts_aga_fm2_dpf0_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p8_ilores_dshres(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -28547,14 +42086,25 @@ static void lts_aga_fm2_dpf0_p8_ilores_dshres(void) bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8_64(); + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 1; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); loaded_pix = getbpl8_64(); } if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_64(); } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 1; uae_u8 pix1 = 0; @@ -28576,14 +42126,25 @@ static void lts_aga_fm2_dpf0_p8_ilores_dshres(void) bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8_64(); + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 1; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); loaded_pix = getbpl8_64(); } if (bpldat_copy[0] && ((cnt | 1) & 255) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_64(); } + if (bpldat_copy[1] && ((cnt | 1) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 1; uae_u8 pix2 = 0; @@ -28605,14 +42166,25 @@ static void lts_aga_fm2_dpf0_p8_ilores_dshres(void) bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8_64(); + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 1; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); loaded_pix = getbpl8_64(); } if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_64(); } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 1; uae_u8 pix3 = 0; @@ -28634,14 +42206,25 @@ static void lts_aga_fm2_dpf0_p8_ilores_dshres(void) bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8_64(); + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 1; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); loaded_pix = getbpl8_64(); } if (bpldat_copy[0] && ((cnt | 3) & 255) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_64(); } + if (bpldat_copy[1] && ((cnt | 3) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 1; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -28699,7 +42282,27 @@ static void lts_aga_fm2_dpf0_p8_ilores_dshres(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p8_ilores_dshres(void) +static void lts_aga_fm2_dpf1_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ilores_dshres(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ilores_dshres(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ilores_dshres(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -28718,37 +42321,21 @@ static void lts_aga_fm2_dpf1_p8_ilores_dshres(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = decode_ham_pixel_aga(pix0); } last_bpl_pix = pix0; } bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 1; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); + shiftbpl8_64(); loaded_pix = getbpl8_64(); } if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl8_64(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); - } loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 1; uae_u8 pix1 = 0; @@ -28758,37 +42345,21 @@ static void lts_aga_fm2_dpf1_p8_ilores_dshres(void) if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; clxdat |= bplcoltable[pix1]; - uae_u8 val1 = dpf_lookup[pix1]; - if (dpf_lookup_no[pix1]) { - val1 += dblpfofs[bpldualpf2of]; - } - val1 ^= bplcon4_denise_xor_val; - dpix_val1 = denise_colors.acolors[val1]; + dpix_val1 = decode_ham_pixel_aga(pix1); } last_bpl_pix = pix1; } bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 1; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); + shiftbpl8_64(); loaded_pix = getbpl8_64(); } if (bpldat_copy[0] && ((cnt | 1) & 255) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl8_64(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 1) & 255) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); - } loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 1; uae_u8 pix2 = 0; @@ -28798,37 +42369,21 @@ static void lts_aga_fm2_dpf1_p8_ilores_dshres(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; + dpix_val2 = decode_ham_pixel_aga(pix2); } last_bpl_pix = pix2; } bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 1; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); + shiftbpl8_64(); loaded_pix = getbpl8_64(); } if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl8_64(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); - } loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 1; uae_u8 pix3 = 0; @@ -28838,37 +42393,21 @@ static void lts_aga_fm2_dpf1_p8_ilores_dshres(void) if (denise_hdiw && bpl1dat_trigger) { pix3 = loaded_pixs[3]; clxdat |= bplcoltable[pix3]; - uae_u8 val3 = dpf_lookup[pix3]; - if (dpf_lookup_no[pix3]) { - val3 += dblpfofs[bpldualpf2of]; - } - val3 ^= bplcon4_denise_xor_val; - dpix_val3 = denise_colors.acolors[val3]; + dpix_val3 = decode_ham_pixel_aga(pix3); } last_bpl_pix = pix3; } bplshiftcnt[0] += 1; if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 1; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); + shiftbpl8_64(); loaded_pix = getbpl8_64(); } if (bpldat_copy[0] && ((cnt | 3) & 255) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl8_64(); bplshiftcnt[0] = 0; loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 3) & 255) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); - } loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 1; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -28926,177 +42465,10 @@ static void lts_aga_fm2_dpf1_p8_ilores_dshres(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p8_ilores_dshres(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p8_ilores_dshres(void) +static void lts_aga_fm2_ham0_p8_ilores_dshres_filtered(void) { lts_null(); } -static void lts_aga_fm2_ham0_p8_ilores_dshres(void) -{ - while (denise_cck < denise_total) { - do_denise_cck(denise_linecnt, denise_startpos, denise_cck); - if (lts_changed) return; - for (int h = 0; h < 2; h++) { - if (h) { - denise_hcounter_next = denise_hcounter_new; - } - int cnt = denise_hcounter << 2; - int cnt_next = denise_hcounter_next << 2; - if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - uae_u8 pix0 = 0; - uae_u32 dpix_val0 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val0 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix0 = loaded_pixs[0]; - clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); - } - last_bpl_pix = pix0; - } - bplshiftcnt[0] += 1; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); - } - loaded_pixs[0] = loaded_pix; - internal_pixel_cnt += 1; - uae_u8 pix1 = 0; - uae_u32 dpix_val1 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val1 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix1 = loaded_pixs[1]; - clxdat |= bplcoltable[pix1]; - dpix_val1 = decode_ham_pixel_aga(pix1); - } - last_bpl_pix = pix1; - } - bplshiftcnt[0] += 1; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 1) & 255) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); - } - loaded_pixs[1] = loaded_pix; - internal_pixel_cnt += 1; - uae_u8 pix2 = 0; - uae_u32 dpix_val2 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val2 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix2 = loaded_pixs[2]; - clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); - } - last_bpl_pix = pix2; - } - bplshiftcnt[0] += 1; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); - } - loaded_pixs[2] = loaded_pix; - internal_pixel_cnt += 1; - uae_u8 pix3 = 0; - uae_u32 dpix_val3 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val3 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix3 = loaded_pixs[3]; - clxdat |= bplcoltable[pix3]; - dpix_val3 = decode_ham_pixel_aga(pix3); - } - last_bpl_pix = pix3; - } - bplshiftcnt[0] += 1; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 3) & 255) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); - } - loaded_pixs[3] = loaded_pix; - internal_pixel_cnt += 1; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - dtbuf[h][0] = dpix_val0; - dtbuf[h][1] = dpix_val1; - dtbuf[h][2] = dpix_val2; - dtbuf[h][3] = dpix_val3; - uae_u32 t0 = dtbuf[h ^ lol][0]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t0 = decode_denise_specials_debug(t0, cnt + 0); - } - #endif - *buf1++ = t0; - *buf2++ = t0; - uae_u32 t1 = dtbuf[h ^ lol][1]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t1 = decode_denise_specials_debug(t1, cnt + 1); - } - #endif - *buf1++ = t1; - *buf2++ = t1; - uae_u32 t2 = dtbuf[h ^ lol][2]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t2 = decode_denise_specials_debug(t2, cnt + 2); - } - #endif - *buf1++ = t2; - *buf2++ = t2; - uae_u32 t3 = dtbuf[h ^ lol][3]; - #ifdef DEBUGGER - if (decode_specials_debug) { - t3 = decode_denise_specials_debug(t3, cnt + 3); - } - #endif - *buf1++ = t3; - *buf2++ = t3; - } - sprites_hidden = sprites_hidden2; - #ifdef DEBUGGER - *debug_dma_dhpos_odd = denise_hcounter; - #endif - denise_hcounter++; - denise_hcounter &= 511; - denise_hcounter_next++; - denise_hcounter_next &= 511; - } - denise_pixtotal++; - if (denise_pixtotal == 0) { - internal_pixel_start_cnt = internal_pixel_cnt; - } - denise_hcounter = denise_hcounter_new; - denise_cck++; - } -} static void lts_aga_fm2_ham1_p8_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -29304,14 +42676,26 @@ static void lts_aga_fm2_ham1_p8_ilores_dshres(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p8_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p8_ilores_dshres(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p8_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p2_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -29535,6 +42919,10 @@ static void lts_aga_fm2_n0_p2_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p2_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -29802,6 +43190,10 @@ static void lts_aga_fm2_n1_p2_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p2_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -30045,6 +43437,10 @@ static void lts_aga_fm2_dpf0_p2_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p2_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -30332,30 +43728,58 @@ static void lts_aga_fm2_dpf1_p2_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ham0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ham1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p4_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -30579,6 +44003,10 @@ static void lts_aga_fm2_n0_p4_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p4_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -30846,6 +44274,10 @@ static void lts_aga_fm2_n1_p4_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p4_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -31089,6 +44521,10 @@ static void lts_aga_fm2_dpf0_p4_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p4_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -31376,30 +44812,58 @@ static void lts_aga_fm2_dpf1_p4_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ham0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ham1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -31623,6 +45087,10 @@ static void lts_aga_fm2_n0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -31890,6 +45358,10 @@ static void lts_aga_fm2_n1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -32133,6 +45605,10 @@ static void lts_aga_fm2_dpf0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -32420,6 +45896,10 @@ static void lts_aga_fm2_dpf1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -32667,6 +46147,10 @@ static void lts_aga_fm2_ehb0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_ehb0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -32958,6 +46442,10 @@ static void lts_aga_fm2_ehb1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_ehb1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -33181,6 +46669,10 @@ static void lts_aga_fm2_ham0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -33448,6 +46940,10 @@ static void lts_aga_fm2_ham1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -33675,6 +47171,10 @@ static void lts_aga_fm2_kehb0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_kehb0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -33946,6 +47446,10 @@ static void lts_aga_fm2_kehb1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_kehb1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p8_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -34169,6 +47673,10 @@ static void lts_aga_fm2_n0_p8_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n0_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p8_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -34436,6 +47944,10 @@ static void lts_aga_fm2_n1_p8_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n1_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p8_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -34679,6 +48191,10 @@ static void lts_aga_fm2_dpf0_p8_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p8_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -34966,14 +48482,26 @@ static void lts_aga_fm2_dpf1_p8_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p8_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p8_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p8_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -35197,6 +48725,10 @@ static void lts_aga_fm2_ham0_p8_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p8_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -35464,14 +48996,26 @@ static void lts_aga_fm2_ham1_p8_ilores_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p8_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p8_ilores_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p8_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p2_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -35635,6 +49179,10 @@ static void lts_aga_fm2_n0_p2_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p2_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -35842,6 +49390,10 @@ static void lts_aga_fm2_n1_p2_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p2_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -36025,6 +49577,10 @@ static void lts_aga_fm2_dpf0_p2_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p2_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -36252,30 +49808,58 @@ static void lts_aga_fm2_dpf1_p2_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p2_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p2_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p2_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm2_ham0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p2_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm2_ham1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p2_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p2_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p4_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -36439,6 +50023,10 @@ static void lts_aga_fm2_n0_p4_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p4_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -36646,6 +50234,10 @@ static void lts_aga_fm2_n1_p4_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p4_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -36829,6 +50421,10 @@ static void lts_aga_fm2_dpf0_p4_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p4_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -37056,30 +50652,58 @@ static void lts_aga_fm2_dpf1_p4_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p4_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p4_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p4_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm2_ham0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p4_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm2_ham1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p4_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p4_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -37243,6 +50867,10 @@ static void lts_aga_fm2_n0_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -37450,6 +51078,10 @@ static void lts_aga_fm2_n1_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -37633,6 +51265,10 @@ static void lts_aga_fm2_dpf0_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -37860,6 +51496,10 @@ static void lts_aga_fm2_dpf1_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -38047,6 +51687,10 @@ static void lts_aga_fm2_ehb0_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_ehb0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -38278,6 +51922,10 @@ static void lts_aga_fm2_ehb1_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_ehb1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -38441,6 +52089,10 @@ static void lts_aga_fm2_ham0_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -38648,6 +52300,10 @@ static void lts_aga_fm2_ham1_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -38815,6 +52471,10 @@ static void lts_aga_fm2_kehb0_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_kehb0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p6_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -39026,6 +52686,10 @@ static void lts_aga_fm2_kehb1_p6_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_kehb1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p8_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -39189,6 +52853,10 @@ static void lts_aga_fm2_n0_p8_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n0_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p8_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -39396,6 +53064,10 @@ static void lts_aga_fm2_n1_p8_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n1_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p8_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -39579,6 +53251,10 @@ static void lts_aga_fm2_dpf0_p8_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p8_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -39806,14 +53482,26 @@ static void lts_aga_fm2_dpf1_p8_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p8_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p8_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p8_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -39977,6 +53665,10 @@ static void lts_aga_fm2_ham0_p8_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p8_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -40184,14 +53876,26 @@ static void lts_aga_fm2_ham1_p8_ihires_dshres(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p8_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p8_ihires_dshres(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p8_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p2_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -40415,6 +54119,10 @@ static void lts_aga_fm2_n0_p2_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p2_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -40682,6 +54390,10 @@ static void lts_aga_fm2_n1_p2_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p2_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -40925,6 +54637,10 @@ static void lts_aga_fm2_dpf0_p2_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p2_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -41212,30 +54928,58 @@ static void lts_aga_fm2_dpf1_p2_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ham0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ham1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p4_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -41459,6 +55203,10 @@ static void lts_aga_fm2_n0_p4_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p4_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -41726,6 +55474,10 @@ static void lts_aga_fm2_n1_p4_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p4_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -41969,6 +55721,10 @@ static void lts_aga_fm2_dpf0_p4_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p4_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -42256,30 +56012,58 @@ static void lts_aga_fm2_dpf1_p4_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ham0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ham1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -42503,6 +56287,10 @@ static void lts_aga_fm2_n0_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -42770,6 +56558,10 @@ static void lts_aga_fm2_n1_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -43013,6 +56805,10 @@ static void lts_aga_fm2_dpf0_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -43300,6 +57096,10 @@ static void lts_aga_fm2_dpf1_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -43547,6 +57347,10 @@ static void lts_aga_fm2_ehb0_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_ehb0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -43838,6 +57642,10 @@ static void lts_aga_fm2_ehb1_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_ehb1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -44061,6 +57869,10 @@ static void lts_aga_fm2_ham0_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -44328,6 +58140,10 @@ static void lts_aga_fm2_ham1_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -44555,6 +58371,10 @@ static void lts_aga_fm2_kehb0_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_kehb0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p6_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -44826,6 +58646,10 @@ static void lts_aga_fm2_kehb1_p6_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_kehb1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p8_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -45049,6 +58873,10 @@ static void lts_aga_fm2_n0_p8_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n0_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p8_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -45316,6 +59144,10 @@ static void lts_aga_fm2_n1_p8_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n1_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p8_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -45559,6 +59391,10 @@ static void lts_aga_fm2_dpf0_p8_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p8_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -45846,14 +59682,26 @@ static void lts_aga_fm2_dpf1_p8_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p8_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p8_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p8_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -46077,6 +59925,10 @@ static void lts_aga_fm2_ham0_p8_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p8_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -46344,14 +60196,26 @@ static void lts_aga_fm2_ham1_p8_ihires_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p8_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p8_ihires_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p8_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p2_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -46491,6 +60355,10 @@ static void lts_aga_fm2_n0_p2_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n0_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p2_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -46642,6 +60510,10 @@ static void lts_aga_fm2_n1_p2_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n1_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p2_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -46801,6 +60673,10 @@ static void lts_aga_fm2_dpf0_p2_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p2_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -46972,30 +60848,58 @@ static void lts_aga_fm2_dpf1_p2_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p2_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p2_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p2_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm2_ham0_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p2_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm2_ham1_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p2_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p2_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p2_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p4_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -47135,6 +61039,10 @@ static void lts_aga_fm2_n0_p4_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n0_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p4_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -47286,6 +61194,10 @@ static void lts_aga_fm2_n1_p4_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n1_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p4_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -47445,6 +61357,10 @@ static void lts_aga_fm2_dpf0_p4_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p4_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -47616,30 +61532,58 @@ static void lts_aga_fm2_dpf1_p4_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm2_ham0_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm2_ham1_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p4_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p4_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p6_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -47779,6 +61723,10 @@ static void lts_aga_fm2_n0_p6_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n0_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p6_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -47930,6 +61878,10 @@ static void lts_aga_fm2_n1_p6_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n1_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p6_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -48089,6 +62041,10 @@ static void lts_aga_fm2_dpf0_p6_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p6_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -48260,6 +62216,10 @@ static void lts_aga_fm2_dpf1_p6_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p6_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -48423,6 +62383,10 @@ static void lts_aga_fm2_ehb0_p6_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_ehb0_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p6_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -48598,6 +62562,10 @@ static void lts_aga_fm2_ehb1_p6_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_ehb1_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p6_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -48737,6 +62705,10 @@ static void lts_aga_fm2_ham0_p6_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p6_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -48888,6 +62860,10 @@ static void lts_aga_fm2_ham1_p6_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p6_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -49031,6 +63007,10 @@ static void lts_aga_fm2_kehb0_p6_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_kehb0_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p6_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -49186,6 +63166,10 @@ static void lts_aga_fm2_kehb1_p6_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_kehb1_p6_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p8_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -49325,6 +63309,10 @@ static void lts_aga_fm2_n0_p8_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n0_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p8_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -49476,6 +63464,10 @@ static void lts_aga_fm2_n1_p8_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_n1_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p8_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -49635,6 +63627,10 @@ static void lts_aga_fm2_dpf0_p8_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p8_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -49806,14 +63802,26 @@ static void lts_aga_fm2_dpf1_p8_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p8_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -49953,6 +63961,10 @@ static void lts_aga_fm2_ham0_p8_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p8_ishres_dshres(void) { while (denise_cck < denise_total) { @@ -50104,14 +64116,26 @@ static void lts_aga_fm2_ham1_p8_ishres_dshres(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p8_ishres_dshres(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p8_ishres_dshres_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p2_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -50311,6 +64335,10 @@ static void lts_aga_fm2_n0_p2_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n0_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p2_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -50522,6 +64550,10 @@ static void lts_aga_fm2_n1_p2_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n1_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p2_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -50741,6 +64773,10 @@ static void lts_aga_fm2_dpf0_p2_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p2_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -50972,30 +65008,58 @@ static void lts_aga_fm2_dpf1_p2_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p2_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p2_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p2_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ham0_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p2_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ham1_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p2_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p2_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p2_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p4_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -51195,6 +65259,10 @@ static void lts_aga_fm2_n0_p4_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n0_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p4_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -51406,6 +65474,10 @@ static void lts_aga_fm2_n1_p4_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n1_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p4_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -51625,6 +65697,10 @@ static void lts_aga_fm2_dpf0_p4_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p4_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -51856,30 +65932,58 @@ static void lts_aga_fm2_dpf1_p4_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ham0_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ham1_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p4_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p4_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p6_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -52079,6 +66183,10 @@ static void lts_aga_fm2_n0_p6_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n0_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p6_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -52290,6 +66398,10 @@ static void lts_aga_fm2_n1_p6_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n1_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p6_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -52509,6 +66621,10 @@ static void lts_aga_fm2_dpf0_p6_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p6_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -52740,6 +66856,10 @@ static void lts_aga_fm2_dpf1_p6_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p6_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -52963,6 +67083,10 @@ static void lts_aga_fm2_ehb0_p6_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_ehb0_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p6_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -53198,6 +67322,10 @@ static void lts_aga_fm2_ehb1_p6_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_ehb1_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p6_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -53397,6 +67525,10 @@ static void lts_aga_fm2_ham0_p6_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p6_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -53608,6 +67740,10 @@ static void lts_aga_fm2_ham1_p6_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p6_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -53811,6 +67947,10 @@ static void lts_aga_fm2_kehb0_p6_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_kehb0_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p6_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -54026,6 +68166,10 @@ static void lts_aga_fm2_kehb1_p6_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_kehb1_p6_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p8_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -54225,6 +68369,10 @@ static void lts_aga_fm2_n0_p8_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n0_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p8_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -54436,6 +68584,10 @@ static void lts_aga_fm2_n1_p8_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_n1_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p8_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -54655,6 +68807,10 @@ static void lts_aga_fm2_dpf0_p8_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p8_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -54886,14 +69042,26 @@ static void lts_aga_fm2_dpf1_p8_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p8_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -55093,6 +69261,10 @@ static void lts_aga_fm2_ham0_p8_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p8_ishres_dshres_spr(void) { while (denise_cck < denise_total) { @@ -55304,14 +69476,26 @@ static void lts_aga_fm2_ham1_p8_ishres_dshres_spr(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p8_ishres_dshres_spr(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p8_ishres_dshres_spr_filtered(void) +{ + lts_null(); +} static LINETOSRC_FUNC linetoscr_aga_funcs[] = { lts_aga_fm0_n0_p2_ilores_dlores, lts_aga_fm0_n1_p2_ilores_dlores, @@ -57475,3 +71659,2166 @@ static LINETOSRC_FUNC linetoscr_aga_funcs[] = { lts_aga_fm2_kehb1_p8_ishres_dshres_spr, NULL }; +static LINETOSRC_FUNC linetoscr_aga_funcs_filtered[] = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_fm0_n0_p2_ihires_dlores_filtered, + lts_aga_fm0_n1_p2_ihires_dlores_filtered, + lts_aga_fm0_dpf0_p2_ihires_dlores_filtered, + lts_aga_fm0_dpf1_p2_ihires_dlores_filtered, + lts_aga_fm0_ehb0_p2_ihires_dlores_filtered, + lts_aga_fm0_ehb1_p2_ihires_dlores_filtered, + lts_aga_fm0_ham0_p2_ihires_dlores_filtered, + lts_aga_fm0_ham1_p2_ihires_dlores_filtered, + lts_aga_fm0_kehb0_p2_ihires_dlores_filtered, + lts_aga_fm0_kehb1_p2_ihires_dlores_filtered, + lts_aga_fm0_n0_p4_ihires_dlores_filtered, + lts_aga_fm0_n1_p4_ihires_dlores_filtered, + lts_aga_fm0_dpf0_p4_ihires_dlores_filtered, + lts_aga_fm0_dpf1_p4_ihires_dlores_filtered, + lts_aga_fm0_ehb0_p4_ihires_dlores_filtered, + lts_aga_fm0_ehb1_p4_ihires_dlores_filtered, + lts_aga_fm0_ham0_p4_ihires_dlores_filtered, + lts_aga_fm0_ham1_p4_ihires_dlores_filtered, + lts_aga_fm0_kehb0_p4_ihires_dlores_filtered, + lts_aga_fm0_kehb1_p4_ihires_dlores_filtered, + lts_aga_fm0_n0_p6_ihires_dlores_filtered, + lts_aga_fm0_n1_p6_ihires_dlores_filtered, + lts_aga_fm0_dpf0_p6_ihires_dlores_filtered, + lts_aga_fm0_dpf1_p6_ihires_dlores_filtered, + lts_aga_fm0_ehb0_p6_ihires_dlores_filtered, + lts_aga_fm0_ehb1_p6_ihires_dlores_filtered, + lts_aga_fm0_ham0_p6_ihires_dlores_filtered, + lts_aga_fm0_ham1_p6_ihires_dlores_filtered, + lts_aga_fm0_kehb0_p6_ihires_dlores_filtered, + lts_aga_fm0_kehb1_p6_ihires_dlores_filtered, + lts_aga_fm0_n0_p8_ihires_dlores_filtered, + lts_aga_fm0_n1_p8_ihires_dlores_filtered, + lts_aga_fm0_dpf0_p8_ihires_dlores_filtered, + lts_aga_fm0_dpf1_p8_ihires_dlores_filtered, + lts_aga_fm0_ehb0_p8_ihires_dlores_filtered, + lts_aga_fm0_ehb1_p8_ihires_dlores_filtered, + lts_aga_fm0_ham0_p8_ihires_dlores_filtered, + lts_aga_fm0_ham1_p8_ihires_dlores_filtered, + lts_aga_fm0_kehb0_p8_ihires_dlores_filtered, + lts_aga_fm0_kehb1_p8_ihires_dlores_filtered, + lts_aga_fm0_n0_p2_ihires_dlores_spr_filtered, + lts_aga_fm0_n1_p2_ihires_dlores_spr_filtered, + lts_aga_fm0_dpf0_p2_ihires_dlores_spr_filtered, + lts_aga_fm0_dpf1_p2_ihires_dlores_spr_filtered, + lts_aga_fm0_ehb0_p2_ihires_dlores_spr_filtered, + lts_aga_fm0_ehb1_p2_ihires_dlores_spr_filtered, + lts_aga_fm0_ham0_p2_ihires_dlores_spr_filtered, + lts_aga_fm0_ham1_p2_ihires_dlores_spr_filtered, + lts_aga_fm0_kehb0_p2_ihires_dlores_spr_filtered, + lts_aga_fm0_kehb1_p2_ihires_dlores_spr_filtered, + lts_aga_fm0_n0_p4_ihires_dlores_spr_filtered, + lts_aga_fm0_n1_p4_ihires_dlores_spr_filtered, + lts_aga_fm0_dpf0_p4_ihires_dlores_spr_filtered, + lts_aga_fm0_dpf1_p4_ihires_dlores_spr_filtered, + lts_aga_fm0_ehb0_p4_ihires_dlores_spr_filtered, + lts_aga_fm0_ehb1_p4_ihires_dlores_spr_filtered, + lts_aga_fm0_ham0_p4_ihires_dlores_spr_filtered, + lts_aga_fm0_ham1_p4_ihires_dlores_spr_filtered, + lts_aga_fm0_kehb0_p4_ihires_dlores_spr_filtered, + lts_aga_fm0_kehb1_p4_ihires_dlores_spr_filtered, + lts_aga_fm0_n0_p6_ihires_dlores_spr_filtered, + lts_aga_fm0_n1_p6_ihires_dlores_spr_filtered, + lts_aga_fm0_dpf0_p6_ihires_dlores_spr_filtered, + lts_aga_fm0_dpf1_p6_ihires_dlores_spr_filtered, + lts_aga_fm0_ehb0_p6_ihires_dlores_spr_filtered, + lts_aga_fm0_ehb1_p6_ihires_dlores_spr_filtered, + lts_aga_fm0_ham0_p6_ihires_dlores_spr_filtered, + lts_aga_fm0_ham1_p6_ihires_dlores_spr_filtered, + lts_aga_fm0_kehb0_p6_ihires_dlores_spr_filtered, + lts_aga_fm0_kehb1_p6_ihires_dlores_spr_filtered, + lts_aga_fm0_n0_p8_ihires_dlores_spr_filtered, + lts_aga_fm0_n1_p8_ihires_dlores_spr_filtered, + lts_aga_fm0_dpf0_p8_ihires_dlores_spr_filtered, + lts_aga_fm0_dpf1_p8_ihires_dlores_spr_filtered, + lts_aga_fm0_ehb0_p8_ihires_dlores_spr_filtered, + lts_aga_fm0_ehb1_p8_ihires_dlores_spr_filtered, + lts_aga_fm0_ham0_p8_ihires_dlores_spr_filtered, + lts_aga_fm0_ham1_p8_ihires_dlores_spr_filtered, + lts_aga_fm0_kehb0_p8_ihires_dlores_spr_filtered, + lts_aga_fm0_kehb1_p8_ihires_dlores_spr_filtered, + lts_aga_fm0_n0_p2_ishres_dlores_filtered, + lts_aga_fm0_n1_p2_ishres_dlores_filtered, + lts_aga_fm0_dpf0_p2_ishres_dlores_filtered, + lts_aga_fm0_dpf1_p2_ishres_dlores_filtered, + lts_aga_fm0_ehb0_p2_ishres_dlores_filtered, + lts_aga_fm0_ehb1_p2_ishres_dlores_filtered, + lts_aga_fm0_ham0_p2_ishres_dlores_filtered, + lts_aga_fm0_ham1_p2_ishres_dlores_filtered, + lts_aga_fm0_kehb0_p2_ishres_dlores_filtered, + lts_aga_fm0_kehb1_p2_ishres_dlores_filtered, + lts_aga_fm0_n0_p4_ishres_dlores_filtered, + lts_aga_fm0_n1_p4_ishres_dlores_filtered, + lts_aga_fm0_dpf0_p4_ishres_dlores_filtered, + lts_aga_fm0_dpf1_p4_ishres_dlores_filtered, + lts_aga_fm0_ehb0_p4_ishres_dlores_filtered, + lts_aga_fm0_ehb1_p4_ishres_dlores_filtered, + lts_aga_fm0_ham0_p4_ishres_dlores_filtered, + lts_aga_fm0_ham1_p4_ishres_dlores_filtered, + lts_aga_fm0_kehb0_p4_ishres_dlores_filtered, + lts_aga_fm0_kehb1_p4_ishres_dlores_filtered, + lts_aga_fm0_n0_p6_ishres_dlores_filtered, + lts_aga_fm0_n1_p6_ishres_dlores_filtered, + lts_aga_fm0_dpf0_p6_ishres_dlores_filtered, + lts_aga_fm0_dpf1_p6_ishres_dlores_filtered, + lts_aga_fm0_ehb0_p6_ishres_dlores_filtered, + lts_aga_fm0_ehb1_p6_ishres_dlores_filtered, + lts_aga_fm0_ham0_p6_ishres_dlores_filtered, + lts_aga_fm0_ham1_p6_ishres_dlores_filtered, + lts_aga_fm0_kehb0_p6_ishres_dlores_filtered, + lts_aga_fm0_kehb1_p6_ishres_dlores_filtered, + lts_aga_fm0_n0_p8_ishres_dlores_filtered, + lts_aga_fm0_n1_p8_ishres_dlores_filtered, + lts_aga_fm0_dpf0_p8_ishres_dlores_filtered, + lts_aga_fm0_dpf1_p8_ishres_dlores_filtered, + lts_aga_fm0_ehb0_p8_ishres_dlores_filtered, + lts_aga_fm0_ehb1_p8_ishres_dlores_filtered, + lts_aga_fm0_ham0_p8_ishres_dlores_filtered, + lts_aga_fm0_ham1_p8_ishres_dlores_filtered, + lts_aga_fm0_kehb0_p8_ishres_dlores_filtered, + lts_aga_fm0_kehb1_p8_ishres_dlores_filtered, + lts_aga_fm0_n0_p2_ishres_dlores_spr_filtered, + lts_aga_fm0_n1_p2_ishres_dlores_spr_filtered, + lts_aga_fm0_dpf0_p2_ishres_dlores_spr_filtered, + lts_aga_fm0_dpf1_p2_ishres_dlores_spr_filtered, + lts_aga_fm0_ehb0_p2_ishres_dlores_spr_filtered, + lts_aga_fm0_ehb1_p2_ishres_dlores_spr_filtered, + lts_aga_fm0_ham0_p2_ishres_dlores_spr_filtered, + lts_aga_fm0_ham1_p2_ishres_dlores_spr_filtered, + lts_aga_fm0_kehb0_p2_ishres_dlores_spr_filtered, + lts_aga_fm0_kehb1_p2_ishres_dlores_spr_filtered, + lts_aga_fm0_n0_p4_ishres_dlores_spr_filtered, + lts_aga_fm0_n1_p4_ishres_dlores_spr_filtered, + lts_aga_fm0_dpf0_p4_ishres_dlores_spr_filtered, + lts_aga_fm0_dpf1_p4_ishres_dlores_spr_filtered, + lts_aga_fm0_ehb0_p4_ishres_dlores_spr_filtered, + lts_aga_fm0_ehb1_p4_ishres_dlores_spr_filtered, + lts_aga_fm0_ham0_p4_ishres_dlores_spr_filtered, + lts_aga_fm0_ham1_p4_ishres_dlores_spr_filtered, + lts_aga_fm0_kehb0_p4_ishres_dlores_spr_filtered, + lts_aga_fm0_kehb1_p4_ishres_dlores_spr_filtered, + lts_aga_fm0_n0_p6_ishres_dlores_spr_filtered, + lts_aga_fm0_n1_p6_ishres_dlores_spr_filtered, + lts_aga_fm0_dpf0_p6_ishres_dlores_spr_filtered, + lts_aga_fm0_dpf1_p6_ishres_dlores_spr_filtered, + lts_aga_fm0_ehb0_p6_ishres_dlores_spr_filtered, + lts_aga_fm0_ehb1_p6_ishres_dlores_spr_filtered, + lts_aga_fm0_ham0_p6_ishres_dlores_spr_filtered, + lts_aga_fm0_ham1_p6_ishres_dlores_spr_filtered, + lts_aga_fm0_kehb0_p6_ishres_dlores_spr_filtered, + lts_aga_fm0_kehb1_p6_ishres_dlores_spr_filtered, + lts_aga_fm0_n0_p8_ishres_dlores_spr_filtered, + lts_aga_fm0_n1_p8_ishres_dlores_spr_filtered, + lts_aga_fm0_dpf0_p8_ishres_dlores_spr_filtered, + lts_aga_fm0_dpf1_p8_ishres_dlores_spr_filtered, + lts_aga_fm0_ehb0_p8_ishres_dlores_spr_filtered, + lts_aga_fm0_ehb1_p8_ishres_dlores_spr_filtered, + lts_aga_fm0_ham0_p8_ishres_dlores_spr_filtered, + lts_aga_fm0_ham1_p8_ishres_dlores_spr_filtered, + lts_aga_fm0_kehb0_p8_ishres_dlores_spr_filtered, + lts_aga_fm0_kehb1_p8_ishres_dlores_spr_filtered, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_fm0_n0_p2_ishres_dhires_filtered, + lts_aga_fm0_n1_p2_ishres_dhires_filtered, + lts_aga_fm0_dpf0_p2_ishres_dhires_filtered, + lts_aga_fm0_dpf1_p2_ishres_dhires_filtered, + lts_aga_fm0_ehb0_p2_ishres_dhires_filtered, + lts_aga_fm0_ehb1_p2_ishres_dhires_filtered, + lts_aga_fm0_ham0_p2_ishres_dhires_filtered, + lts_aga_fm0_ham1_p2_ishres_dhires_filtered, + lts_aga_fm0_kehb0_p2_ishres_dhires_filtered, + lts_aga_fm0_kehb1_p2_ishres_dhires_filtered, + lts_aga_fm0_n0_p4_ishres_dhires_filtered, + lts_aga_fm0_n1_p4_ishres_dhires_filtered, + lts_aga_fm0_dpf0_p4_ishres_dhires_filtered, + lts_aga_fm0_dpf1_p4_ishres_dhires_filtered, + lts_aga_fm0_ehb0_p4_ishres_dhires_filtered, + lts_aga_fm0_ehb1_p4_ishres_dhires_filtered, + lts_aga_fm0_ham0_p4_ishres_dhires_filtered, + lts_aga_fm0_ham1_p4_ishres_dhires_filtered, + lts_aga_fm0_kehb0_p4_ishres_dhires_filtered, + lts_aga_fm0_kehb1_p4_ishres_dhires_filtered, + lts_aga_fm0_n0_p6_ishres_dhires_filtered, + lts_aga_fm0_n1_p6_ishres_dhires_filtered, + lts_aga_fm0_dpf0_p6_ishres_dhires_filtered, + lts_aga_fm0_dpf1_p6_ishres_dhires_filtered, + lts_aga_fm0_ehb0_p6_ishres_dhires_filtered, + lts_aga_fm0_ehb1_p6_ishres_dhires_filtered, + lts_aga_fm0_ham0_p6_ishres_dhires_filtered, + lts_aga_fm0_ham1_p6_ishres_dhires_filtered, + lts_aga_fm0_kehb0_p6_ishres_dhires_filtered, + lts_aga_fm0_kehb1_p6_ishres_dhires_filtered, + lts_aga_fm0_n0_p8_ishres_dhires_filtered, + lts_aga_fm0_n1_p8_ishres_dhires_filtered, + lts_aga_fm0_dpf0_p8_ishres_dhires_filtered, + lts_aga_fm0_dpf1_p8_ishres_dhires_filtered, + lts_aga_fm0_ehb0_p8_ishres_dhires_filtered, + lts_aga_fm0_ehb1_p8_ishres_dhires_filtered, + lts_aga_fm0_ham0_p8_ishres_dhires_filtered, + lts_aga_fm0_ham1_p8_ishres_dhires_filtered, + lts_aga_fm0_kehb0_p8_ishres_dhires_filtered, + lts_aga_fm0_kehb1_p8_ishres_dhires_filtered, + lts_aga_fm0_n0_p2_ishres_dhires_spr_filtered, + lts_aga_fm0_n1_p2_ishres_dhires_spr_filtered, + lts_aga_fm0_dpf0_p2_ishres_dhires_spr_filtered, + lts_aga_fm0_dpf1_p2_ishres_dhires_spr_filtered, + lts_aga_fm0_ehb0_p2_ishres_dhires_spr_filtered, + lts_aga_fm0_ehb1_p2_ishres_dhires_spr_filtered, + lts_aga_fm0_ham0_p2_ishres_dhires_spr_filtered, + lts_aga_fm0_ham1_p2_ishres_dhires_spr_filtered, + lts_aga_fm0_kehb0_p2_ishres_dhires_spr_filtered, + lts_aga_fm0_kehb1_p2_ishres_dhires_spr_filtered, + lts_aga_fm0_n0_p4_ishres_dhires_spr_filtered, + lts_aga_fm0_n1_p4_ishres_dhires_spr_filtered, + lts_aga_fm0_dpf0_p4_ishres_dhires_spr_filtered, + lts_aga_fm0_dpf1_p4_ishres_dhires_spr_filtered, + lts_aga_fm0_ehb0_p4_ishres_dhires_spr_filtered, + lts_aga_fm0_ehb1_p4_ishres_dhires_spr_filtered, + lts_aga_fm0_ham0_p4_ishres_dhires_spr_filtered, + lts_aga_fm0_ham1_p4_ishres_dhires_spr_filtered, + lts_aga_fm0_kehb0_p4_ishres_dhires_spr_filtered, + lts_aga_fm0_kehb1_p4_ishres_dhires_spr_filtered, + lts_aga_fm0_n0_p6_ishres_dhires_spr_filtered, + lts_aga_fm0_n1_p6_ishres_dhires_spr_filtered, + lts_aga_fm0_dpf0_p6_ishres_dhires_spr_filtered, + lts_aga_fm0_dpf1_p6_ishres_dhires_spr_filtered, + lts_aga_fm0_ehb0_p6_ishres_dhires_spr_filtered, + lts_aga_fm0_ehb1_p6_ishres_dhires_spr_filtered, + lts_aga_fm0_ham0_p6_ishres_dhires_spr_filtered, + lts_aga_fm0_ham1_p6_ishres_dhires_spr_filtered, + lts_aga_fm0_kehb0_p6_ishres_dhires_spr_filtered, + lts_aga_fm0_kehb1_p6_ishres_dhires_spr_filtered, + lts_aga_fm0_n0_p8_ishres_dhires_spr_filtered, + lts_aga_fm0_n1_p8_ishres_dhires_spr_filtered, + lts_aga_fm0_dpf0_p8_ishres_dhires_spr_filtered, + lts_aga_fm0_dpf1_p8_ishres_dhires_spr_filtered, + lts_aga_fm0_ehb0_p8_ishres_dhires_spr_filtered, + lts_aga_fm0_ehb1_p8_ishres_dhires_spr_filtered, + lts_aga_fm0_ham0_p8_ishres_dhires_spr_filtered, + lts_aga_fm0_ham1_p8_ishres_dhires_spr_filtered, + lts_aga_fm0_kehb0_p8_ishres_dhires_spr_filtered, + lts_aga_fm0_kehb1_p8_ishres_dhires_spr_filtered, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_fm1_n0_p2_ihires_dlores_filtered, + lts_aga_fm1_n1_p2_ihires_dlores_filtered, + lts_aga_fm1_dpf0_p2_ihires_dlores_filtered, + lts_aga_fm1_dpf1_p2_ihires_dlores_filtered, + lts_aga_fm1_ehb0_p2_ihires_dlores_filtered, + lts_aga_fm1_ehb1_p2_ihires_dlores_filtered, + lts_aga_fm1_ham0_p2_ihires_dlores_filtered, + lts_aga_fm1_ham1_p2_ihires_dlores_filtered, + lts_aga_fm1_kehb0_p2_ihires_dlores_filtered, + lts_aga_fm1_kehb1_p2_ihires_dlores_filtered, + lts_aga_fm1_n0_p4_ihires_dlores_filtered, + lts_aga_fm1_n1_p4_ihires_dlores_filtered, + lts_aga_fm1_dpf0_p4_ihires_dlores_filtered, + lts_aga_fm1_dpf1_p4_ihires_dlores_filtered, + lts_aga_fm1_ehb0_p4_ihires_dlores_filtered, + lts_aga_fm1_ehb1_p4_ihires_dlores_filtered, + lts_aga_fm1_ham0_p4_ihires_dlores_filtered, + lts_aga_fm1_ham1_p4_ihires_dlores_filtered, + lts_aga_fm1_kehb0_p4_ihires_dlores_filtered, + lts_aga_fm1_kehb1_p4_ihires_dlores_filtered, + lts_aga_fm1_n0_p6_ihires_dlores_filtered, + lts_aga_fm1_n1_p6_ihires_dlores_filtered, + lts_aga_fm1_dpf0_p6_ihires_dlores_filtered, + lts_aga_fm1_dpf1_p6_ihires_dlores_filtered, + lts_aga_fm1_ehb0_p6_ihires_dlores_filtered, + lts_aga_fm1_ehb1_p6_ihires_dlores_filtered, + lts_aga_fm1_ham0_p6_ihires_dlores_filtered, + lts_aga_fm1_ham1_p6_ihires_dlores_filtered, + lts_aga_fm1_kehb0_p6_ihires_dlores_filtered, + lts_aga_fm1_kehb1_p6_ihires_dlores_filtered, + lts_aga_fm1_n0_p8_ihires_dlores_filtered, + lts_aga_fm1_n1_p8_ihires_dlores_filtered, + lts_aga_fm1_dpf0_p8_ihires_dlores_filtered, + lts_aga_fm1_dpf1_p8_ihires_dlores_filtered, + lts_aga_fm1_ehb0_p8_ihires_dlores_filtered, + lts_aga_fm1_ehb1_p8_ihires_dlores_filtered, + lts_aga_fm1_ham0_p8_ihires_dlores_filtered, + lts_aga_fm1_ham1_p8_ihires_dlores_filtered, + lts_aga_fm1_kehb0_p8_ihires_dlores_filtered, + lts_aga_fm1_kehb1_p8_ihires_dlores_filtered, + lts_aga_fm1_n0_p2_ihires_dlores_spr_filtered, + lts_aga_fm1_n1_p2_ihires_dlores_spr_filtered, + lts_aga_fm1_dpf0_p2_ihires_dlores_spr_filtered, + lts_aga_fm1_dpf1_p2_ihires_dlores_spr_filtered, + lts_aga_fm1_ehb0_p2_ihires_dlores_spr_filtered, + lts_aga_fm1_ehb1_p2_ihires_dlores_spr_filtered, + lts_aga_fm1_ham0_p2_ihires_dlores_spr_filtered, + lts_aga_fm1_ham1_p2_ihires_dlores_spr_filtered, + lts_aga_fm1_kehb0_p2_ihires_dlores_spr_filtered, + lts_aga_fm1_kehb1_p2_ihires_dlores_spr_filtered, + lts_aga_fm1_n0_p4_ihires_dlores_spr_filtered, + lts_aga_fm1_n1_p4_ihires_dlores_spr_filtered, + lts_aga_fm1_dpf0_p4_ihires_dlores_spr_filtered, + lts_aga_fm1_dpf1_p4_ihires_dlores_spr_filtered, + lts_aga_fm1_ehb0_p4_ihires_dlores_spr_filtered, + lts_aga_fm1_ehb1_p4_ihires_dlores_spr_filtered, + lts_aga_fm1_ham0_p4_ihires_dlores_spr_filtered, + lts_aga_fm1_ham1_p4_ihires_dlores_spr_filtered, + lts_aga_fm1_kehb0_p4_ihires_dlores_spr_filtered, + lts_aga_fm1_kehb1_p4_ihires_dlores_spr_filtered, + lts_aga_fm1_n0_p6_ihires_dlores_spr_filtered, + lts_aga_fm1_n1_p6_ihires_dlores_spr_filtered, + lts_aga_fm1_dpf0_p6_ihires_dlores_spr_filtered, + lts_aga_fm1_dpf1_p6_ihires_dlores_spr_filtered, + lts_aga_fm1_ehb0_p6_ihires_dlores_spr_filtered, + lts_aga_fm1_ehb1_p6_ihires_dlores_spr_filtered, + lts_aga_fm1_ham0_p6_ihires_dlores_spr_filtered, + lts_aga_fm1_ham1_p6_ihires_dlores_spr_filtered, + lts_aga_fm1_kehb0_p6_ihires_dlores_spr_filtered, + lts_aga_fm1_kehb1_p6_ihires_dlores_spr_filtered, + lts_aga_fm1_n0_p8_ihires_dlores_spr_filtered, + lts_aga_fm1_n1_p8_ihires_dlores_spr_filtered, + lts_aga_fm1_dpf0_p8_ihires_dlores_spr_filtered, + lts_aga_fm1_dpf1_p8_ihires_dlores_spr_filtered, + lts_aga_fm1_ehb0_p8_ihires_dlores_spr_filtered, + lts_aga_fm1_ehb1_p8_ihires_dlores_spr_filtered, + lts_aga_fm1_ham0_p8_ihires_dlores_spr_filtered, + lts_aga_fm1_ham1_p8_ihires_dlores_spr_filtered, + lts_aga_fm1_kehb0_p8_ihires_dlores_spr_filtered, + lts_aga_fm1_kehb1_p8_ihires_dlores_spr_filtered, + lts_aga_fm1_n0_p2_ishres_dlores_filtered, + lts_aga_fm1_n1_p2_ishres_dlores_filtered, + lts_aga_fm1_dpf0_p2_ishres_dlores_filtered, + lts_aga_fm1_dpf1_p2_ishres_dlores_filtered, + lts_aga_fm1_ehb0_p2_ishres_dlores_filtered, + lts_aga_fm1_ehb1_p2_ishres_dlores_filtered, + lts_aga_fm1_ham0_p2_ishres_dlores_filtered, + lts_aga_fm1_ham1_p2_ishres_dlores_filtered, + lts_aga_fm1_kehb0_p2_ishres_dlores_filtered, + lts_aga_fm1_kehb1_p2_ishres_dlores_filtered, + lts_aga_fm1_n0_p4_ishres_dlores_filtered, + lts_aga_fm1_n1_p4_ishres_dlores_filtered, + lts_aga_fm1_dpf0_p4_ishres_dlores_filtered, + lts_aga_fm1_dpf1_p4_ishres_dlores_filtered, + lts_aga_fm1_ehb0_p4_ishres_dlores_filtered, + lts_aga_fm1_ehb1_p4_ishres_dlores_filtered, + lts_aga_fm1_ham0_p4_ishres_dlores_filtered, + lts_aga_fm1_ham1_p4_ishres_dlores_filtered, + lts_aga_fm1_kehb0_p4_ishres_dlores_filtered, + lts_aga_fm1_kehb1_p4_ishres_dlores_filtered, + lts_aga_fm1_n0_p6_ishres_dlores_filtered, + lts_aga_fm1_n1_p6_ishres_dlores_filtered, + lts_aga_fm1_dpf0_p6_ishres_dlores_filtered, + lts_aga_fm1_dpf1_p6_ishres_dlores_filtered, + lts_aga_fm1_ehb0_p6_ishres_dlores_filtered, + lts_aga_fm1_ehb1_p6_ishres_dlores_filtered, + lts_aga_fm1_ham0_p6_ishres_dlores_filtered, + lts_aga_fm1_ham1_p6_ishres_dlores_filtered, + lts_aga_fm1_kehb0_p6_ishres_dlores_filtered, + lts_aga_fm1_kehb1_p6_ishres_dlores_filtered, + lts_aga_fm1_n0_p8_ishres_dlores_filtered, + lts_aga_fm1_n1_p8_ishres_dlores_filtered, + lts_aga_fm1_dpf0_p8_ishres_dlores_filtered, + lts_aga_fm1_dpf1_p8_ishres_dlores_filtered, + lts_aga_fm1_ehb0_p8_ishres_dlores_filtered, + lts_aga_fm1_ehb1_p8_ishres_dlores_filtered, + lts_aga_fm1_ham0_p8_ishres_dlores_filtered, + lts_aga_fm1_ham1_p8_ishres_dlores_filtered, + lts_aga_fm1_kehb0_p8_ishres_dlores_filtered, + lts_aga_fm1_kehb1_p8_ishres_dlores_filtered, + lts_aga_fm1_n0_p2_ishres_dlores_spr_filtered, + lts_aga_fm1_n1_p2_ishres_dlores_spr_filtered, + lts_aga_fm1_dpf0_p2_ishres_dlores_spr_filtered, + lts_aga_fm1_dpf1_p2_ishres_dlores_spr_filtered, + lts_aga_fm1_ehb0_p2_ishres_dlores_spr_filtered, + lts_aga_fm1_ehb1_p2_ishres_dlores_spr_filtered, + lts_aga_fm1_ham0_p2_ishres_dlores_spr_filtered, + lts_aga_fm1_ham1_p2_ishres_dlores_spr_filtered, + lts_aga_fm1_kehb0_p2_ishres_dlores_spr_filtered, + lts_aga_fm1_kehb1_p2_ishres_dlores_spr_filtered, + lts_aga_fm1_n0_p4_ishres_dlores_spr_filtered, + lts_aga_fm1_n1_p4_ishres_dlores_spr_filtered, + lts_aga_fm1_dpf0_p4_ishres_dlores_spr_filtered, + lts_aga_fm1_dpf1_p4_ishres_dlores_spr_filtered, + lts_aga_fm1_ehb0_p4_ishres_dlores_spr_filtered, + lts_aga_fm1_ehb1_p4_ishres_dlores_spr_filtered, + lts_aga_fm1_ham0_p4_ishres_dlores_spr_filtered, + lts_aga_fm1_ham1_p4_ishres_dlores_spr_filtered, + lts_aga_fm1_kehb0_p4_ishres_dlores_spr_filtered, + lts_aga_fm1_kehb1_p4_ishres_dlores_spr_filtered, + lts_aga_fm1_n0_p6_ishres_dlores_spr_filtered, + lts_aga_fm1_n1_p6_ishres_dlores_spr_filtered, + lts_aga_fm1_dpf0_p6_ishres_dlores_spr_filtered, + lts_aga_fm1_dpf1_p6_ishres_dlores_spr_filtered, + lts_aga_fm1_ehb0_p6_ishres_dlores_spr_filtered, + lts_aga_fm1_ehb1_p6_ishres_dlores_spr_filtered, + lts_aga_fm1_ham0_p6_ishres_dlores_spr_filtered, + lts_aga_fm1_ham1_p6_ishres_dlores_spr_filtered, + lts_aga_fm1_kehb0_p6_ishres_dlores_spr_filtered, + lts_aga_fm1_kehb1_p6_ishres_dlores_spr_filtered, + lts_aga_fm1_n0_p8_ishres_dlores_spr_filtered, + lts_aga_fm1_n1_p8_ishres_dlores_spr_filtered, + lts_aga_fm1_dpf0_p8_ishres_dlores_spr_filtered, + lts_aga_fm1_dpf1_p8_ishres_dlores_spr_filtered, + lts_aga_fm1_ehb0_p8_ishres_dlores_spr_filtered, + lts_aga_fm1_ehb1_p8_ishres_dlores_spr_filtered, + lts_aga_fm1_ham0_p8_ishres_dlores_spr_filtered, + lts_aga_fm1_ham1_p8_ishres_dlores_spr_filtered, + lts_aga_fm1_kehb0_p8_ishres_dlores_spr_filtered, + lts_aga_fm1_kehb1_p8_ishres_dlores_spr_filtered, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_fm1_n0_p2_ishres_dhires_filtered, + lts_aga_fm1_n1_p2_ishres_dhires_filtered, + lts_aga_fm1_dpf0_p2_ishres_dhires_filtered, + lts_aga_fm1_dpf1_p2_ishres_dhires_filtered, + lts_aga_fm1_ehb0_p2_ishres_dhires_filtered, + lts_aga_fm1_ehb1_p2_ishres_dhires_filtered, + lts_aga_fm1_ham0_p2_ishres_dhires_filtered, + lts_aga_fm1_ham1_p2_ishres_dhires_filtered, + lts_aga_fm1_kehb0_p2_ishres_dhires_filtered, + lts_aga_fm1_kehb1_p2_ishres_dhires_filtered, + lts_aga_fm1_n0_p4_ishres_dhires_filtered, + lts_aga_fm1_n1_p4_ishres_dhires_filtered, + lts_aga_fm1_dpf0_p4_ishres_dhires_filtered, + lts_aga_fm1_dpf1_p4_ishres_dhires_filtered, + lts_aga_fm1_ehb0_p4_ishres_dhires_filtered, + lts_aga_fm1_ehb1_p4_ishres_dhires_filtered, + lts_aga_fm1_ham0_p4_ishres_dhires_filtered, + lts_aga_fm1_ham1_p4_ishres_dhires_filtered, + lts_aga_fm1_kehb0_p4_ishres_dhires_filtered, + lts_aga_fm1_kehb1_p4_ishres_dhires_filtered, + lts_aga_fm1_n0_p6_ishres_dhires_filtered, + lts_aga_fm1_n1_p6_ishres_dhires_filtered, + lts_aga_fm1_dpf0_p6_ishres_dhires_filtered, + lts_aga_fm1_dpf1_p6_ishres_dhires_filtered, + lts_aga_fm1_ehb0_p6_ishres_dhires_filtered, + lts_aga_fm1_ehb1_p6_ishres_dhires_filtered, + lts_aga_fm1_ham0_p6_ishres_dhires_filtered, + lts_aga_fm1_ham1_p6_ishres_dhires_filtered, + lts_aga_fm1_kehb0_p6_ishres_dhires_filtered, + lts_aga_fm1_kehb1_p6_ishres_dhires_filtered, + lts_aga_fm1_n0_p8_ishres_dhires_filtered, + lts_aga_fm1_n1_p8_ishres_dhires_filtered, + lts_aga_fm1_dpf0_p8_ishres_dhires_filtered, + lts_aga_fm1_dpf1_p8_ishres_dhires_filtered, + lts_aga_fm1_ehb0_p8_ishres_dhires_filtered, + lts_aga_fm1_ehb1_p8_ishres_dhires_filtered, + lts_aga_fm1_ham0_p8_ishres_dhires_filtered, + lts_aga_fm1_ham1_p8_ishres_dhires_filtered, + lts_aga_fm1_kehb0_p8_ishres_dhires_filtered, + lts_aga_fm1_kehb1_p8_ishres_dhires_filtered, + lts_aga_fm1_n0_p2_ishres_dhires_spr_filtered, + lts_aga_fm1_n1_p2_ishres_dhires_spr_filtered, + lts_aga_fm1_dpf0_p2_ishres_dhires_spr_filtered, + lts_aga_fm1_dpf1_p2_ishres_dhires_spr_filtered, + lts_aga_fm1_ehb0_p2_ishres_dhires_spr_filtered, + lts_aga_fm1_ehb1_p2_ishres_dhires_spr_filtered, + lts_aga_fm1_ham0_p2_ishres_dhires_spr_filtered, + lts_aga_fm1_ham1_p2_ishres_dhires_spr_filtered, + lts_aga_fm1_kehb0_p2_ishres_dhires_spr_filtered, + lts_aga_fm1_kehb1_p2_ishres_dhires_spr_filtered, + lts_aga_fm1_n0_p4_ishres_dhires_spr_filtered, + lts_aga_fm1_n1_p4_ishres_dhires_spr_filtered, + lts_aga_fm1_dpf0_p4_ishres_dhires_spr_filtered, + lts_aga_fm1_dpf1_p4_ishres_dhires_spr_filtered, + lts_aga_fm1_ehb0_p4_ishres_dhires_spr_filtered, + lts_aga_fm1_ehb1_p4_ishres_dhires_spr_filtered, + lts_aga_fm1_ham0_p4_ishres_dhires_spr_filtered, + lts_aga_fm1_ham1_p4_ishres_dhires_spr_filtered, + lts_aga_fm1_kehb0_p4_ishres_dhires_spr_filtered, + lts_aga_fm1_kehb1_p4_ishres_dhires_spr_filtered, + lts_aga_fm1_n0_p6_ishres_dhires_spr_filtered, + lts_aga_fm1_n1_p6_ishres_dhires_spr_filtered, + lts_aga_fm1_dpf0_p6_ishres_dhires_spr_filtered, + lts_aga_fm1_dpf1_p6_ishres_dhires_spr_filtered, + lts_aga_fm1_ehb0_p6_ishres_dhires_spr_filtered, + lts_aga_fm1_ehb1_p6_ishres_dhires_spr_filtered, + lts_aga_fm1_ham0_p6_ishres_dhires_spr_filtered, + lts_aga_fm1_ham1_p6_ishres_dhires_spr_filtered, + lts_aga_fm1_kehb0_p6_ishres_dhires_spr_filtered, + lts_aga_fm1_kehb1_p6_ishres_dhires_spr_filtered, + lts_aga_fm1_n0_p8_ishres_dhires_spr_filtered, + lts_aga_fm1_n1_p8_ishres_dhires_spr_filtered, + lts_aga_fm1_dpf0_p8_ishres_dhires_spr_filtered, + lts_aga_fm1_dpf1_p8_ishres_dhires_spr_filtered, + lts_aga_fm1_ehb0_p8_ishres_dhires_spr_filtered, + lts_aga_fm1_ehb1_p8_ishres_dhires_spr_filtered, + lts_aga_fm1_ham0_p8_ishres_dhires_spr_filtered, + lts_aga_fm1_ham1_p8_ishres_dhires_spr_filtered, + lts_aga_fm1_kehb0_p8_ishres_dhires_spr_filtered, + lts_aga_fm1_kehb1_p8_ishres_dhires_spr_filtered, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_fm2_n0_p2_ihires_dlores_filtered, + lts_aga_fm2_n1_p2_ihires_dlores_filtered, + lts_aga_fm2_dpf0_p2_ihires_dlores_filtered, + lts_aga_fm2_dpf1_p2_ihires_dlores_filtered, + lts_aga_fm2_ehb0_p2_ihires_dlores_filtered, + lts_aga_fm2_ehb1_p2_ihires_dlores_filtered, + lts_aga_fm2_ham0_p2_ihires_dlores_filtered, + lts_aga_fm2_ham1_p2_ihires_dlores_filtered, + lts_aga_fm2_kehb0_p2_ihires_dlores_filtered, + lts_aga_fm2_kehb1_p2_ihires_dlores_filtered, + lts_aga_fm2_n0_p4_ihires_dlores_filtered, + lts_aga_fm2_n1_p4_ihires_dlores_filtered, + lts_aga_fm2_dpf0_p4_ihires_dlores_filtered, + lts_aga_fm2_dpf1_p4_ihires_dlores_filtered, + lts_aga_fm2_ehb0_p4_ihires_dlores_filtered, + lts_aga_fm2_ehb1_p4_ihires_dlores_filtered, + lts_aga_fm2_ham0_p4_ihires_dlores_filtered, + lts_aga_fm2_ham1_p4_ihires_dlores_filtered, + lts_aga_fm2_kehb0_p4_ihires_dlores_filtered, + lts_aga_fm2_kehb1_p4_ihires_dlores_filtered, + lts_aga_fm2_n0_p6_ihires_dlores_filtered, + lts_aga_fm2_n1_p6_ihires_dlores_filtered, + lts_aga_fm2_dpf0_p6_ihires_dlores_filtered, + lts_aga_fm2_dpf1_p6_ihires_dlores_filtered, + lts_aga_fm2_ehb0_p6_ihires_dlores_filtered, + lts_aga_fm2_ehb1_p6_ihires_dlores_filtered, + lts_aga_fm2_ham0_p6_ihires_dlores_filtered, + lts_aga_fm2_ham1_p6_ihires_dlores_filtered, + lts_aga_fm2_kehb0_p6_ihires_dlores_filtered, + lts_aga_fm2_kehb1_p6_ihires_dlores_filtered, + lts_aga_fm2_n0_p8_ihires_dlores_filtered, + lts_aga_fm2_n1_p8_ihires_dlores_filtered, + lts_aga_fm2_dpf0_p8_ihires_dlores_filtered, + lts_aga_fm2_dpf1_p8_ihires_dlores_filtered, + lts_aga_fm2_ehb0_p8_ihires_dlores_filtered, + lts_aga_fm2_ehb1_p8_ihires_dlores_filtered, + lts_aga_fm2_ham0_p8_ihires_dlores_filtered, + lts_aga_fm2_ham1_p8_ihires_dlores_filtered, + lts_aga_fm2_kehb0_p8_ihires_dlores_filtered, + lts_aga_fm2_kehb1_p8_ihires_dlores_filtered, + lts_aga_fm2_n0_p2_ihires_dlores_spr_filtered, + lts_aga_fm2_n1_p2_ihires_dlores_spr_filtered, + lts_aga_fm2_dpf0_p2_ihires_dlores_spr_filtered, + lts_aga_fm2_dpf1_p2_ihires_dlores_spr_filtered, + lts_aga_fm2_ehb0_p2_ihires_dlores_spr_filtered, + lts_aga_fm2_ehb1_p2_ihires_dlores_spr_filtered, + lts_aga_fm2_ham0_p2_ihires_dlores_spr_filtered, + lts_aga_fm2_ham1_p2_ihires_dlores_spr_filtered, + lts_aga_fm2_kehb0_p2_ihires_dlores_spr_filtered, + lts_aga_fm2_kehb1_p2_ihires_dlores_spr_filtered, + lts_aga_fm2_n0_p4_ihires_dlores_spr_filtered, + lts_aga_fm2_n1_p4_ihires_dlores_spr_filtered, + lts_aga_fm2_dpf0_p4_ihires_dlores_spr_filtered, + lts_aga_fm2_dpf1_p4_ihires_dlores_spr_filtered, + lts_aga_fm2_ehb0_p4_ihires_dlores_spr_filtered, + lts_aga_fm2_ehb1_p4_ihires_dlores_spr_filtered, + lts_aga_fm2_ham0_p4_ihires_dlores_spr_filtered, + lts_aga_fm2_ham1_p4_ihires_dlores_spr_filtered, + lts_aga_fm2_kehb0_p4_ihires_dlores_spr_filtered, + lts_aga_fm2_kehb1_p4_ihires_dlores_spr_filtered, + lts_aga_fm2_n0_p6_ihires_dlores_spr_filtered, + lts_aga_fm2_n1_p6_ihires_dlores_spr_filtered, + lts_aga_fm2_dpf0_p6_ihires_dlores_spr_filtered, + lts_aga_fm2_dpf1_p6_ihires_dlores_spr_filtered, + lts_aga_fm2_ehb0_p6_ihires_dlores_spr_filtered, + lts_aga_fm2_ehb1_p6_ihires_dlores_spr_filtered, + lts_aga_fm2_ham0_p6_ihires_dlores_spr_filtered, + lts_aga_fm2_ham1_p6_ihires_dlores_spr_filtered, + lts_aga_fm2_kehb0_p6_ihires_dlores_spr_filtered, + lts_aga_fm2_kehb1_p6_ihires_dlores_spr_filtered, + lts_aga_fm2_n0_p8_ihires_dlores_spr_filtered, + lts_aga_fm2_n1_p8_ihires_dlores_spr_filtered, + lts_aga_fm2_dpf0_p8_ihires_dlores_spr_filtered, + lts_aga_fm2_dpf1_p8_ihires_dlores_spr_filtered, + lts_aga_fm2_ehb0_p8_ihires_dlores_spr_filtered, + lts_aga_fm2_ehb1_p8_ihires_dlores_spr_filtered, + lts_aga_fm2_ham0_p8_ihires_dlores_spr_filtered, + lts_aga_fm2_ham1_p8_ihires_dlores_spr_filtered, + lts_aga_fm2_kehb0_p8_ihires_dlores_spr_filtered, + lts_aga_fm2_kehb1_p8_ihires_dlores_spr_filtered, + lts_aga_fm2_n0_p2_ishres_dlores_filtered, + lts_aga_fm2_n1_p2_ishres_dlores_filtered, + lts_aga_fm2_dpf0_p2_ishres_dlores_filtered, + lts_aga_fm2_dpf1_p2_ishres_dlores_filtered, + lts_aga_fm2_ehb0_p2_ishres_dlores_filtered, + lts_aga_fm2_ehb1_p2_ishres_dlores_filtered, + lts_aga_fm2_ham0_p2_ishres_dlores_filtered, + lts_aga_fm2_ham1_p2_ishres_dlores_filtered, + lts_aga_fm2_kehb0_p2_ishres_dlores_filtered, + lts_aga_fm2_kehb1_p2_ishres_dlores_filtered, + lts_aga_fm2_n0_p4_ishres_dlores_filtered, + lts_aga_fm2_n1_p4_ishres_dlores_filtered, + lts_aga_fm2_dpf0_p4_ishres_dlores_filtered, + lts_aga_fm2_dpf1_p4_ishres_dlores_filtered, + lts_aga_fm2_ehb0_p4_ishres_dlores_filtered, + lts_aga_fm2_ehb1_p4_ishres_dlores_filtered, + lts_aga_fm2_ham0_p4_ishres_dlores_filtered, + lts_aga_fm2_ham1_p4_ishres_dlores_filtered, + lts_aga_fm2_kehb0_p4_ishres_dlores_filtered, + lts_aga_fm2_kehb1_p4_ishres_dlores_filtered, + lts_aga_fm2_n0_p6_ishres_dlores_filtered, + lts_aga_fm2_n1_p6_ishres_dlores_filtered, + lts_aga_fm2_dpf0_p6_ishres_dlores_filtered, + lts_aga_fm2_dpf1_p6_ishres_dlores_filtered, + lts_aga_fm2_ehb0_p6_ishres_dlores_filtered, + lts_aga_fm2_ehb1_p6_ishres_dlores_filtered, + lts_aga_fm2_ham0_p6_ishres_dlores_filtered, + lts_aga_fm2_ham1_p6_ishres_dlores_filtered, + lts_aga_fm2_kehb0_p6_ishres_dlores_filtered, + lts_aga_fm2_kehb1_p6_ishres_dlores_filtered, + lts_aga_fm2_n0_p8_ishres_dlores_filtered, + lts_aga_fm2_n1_p8_ishres_dlores_filtered, + lts_aga_fm2_dpf0_p8_ishres_dlores_filtered, + lts_aga_fm2_dpf1_p8_ishres_dlores_filtered, + lts_aga_fm2_ehb0_p8_ishres_dlores_filtered, + lts_aga_fm2_ehb1_p8_ishres_dlores_filtered, + lts_aga_fm2_ham0_p8_ishres_dlores_filtered, + lts_aga_fm2_ham1_p8_ishres_dlores_filtered, + lts_aga_fm2_kehb0_p8_ishres_dlores_filtered, + lts_aga_fm2_kehb1_p8_ishres_dlores_filtered, + lts_aga_fm2_n0_p2_ishres_dlores_spr_filtered, + lts_aga_fm2_n1_p2_ishres_dlores_spr_filtered, + lts_aga_fm2_dpf0_p2_ishres_dlores_spr_filtered, + lts_aga_fm2_dpf1_p2_ishres_dlores_spr_filtered, + lts_aga_fm2_ehb0_p2_ishres_dlores_spr_filtered, + lts_aga_fm2_ehb1_p2_ishres_dlores_spr_filtered, + lts_aga_fm2_ham0_p2_ishres_dlores_spr_filtered, + lts_aga_fm2_ham1_p2_ishres_dlores_spr_filtered, + lts_aga_fm2_kehb0_p2_ishres_dlores_spr_filtered, + lts_aga_fm2_kehb1_p2_ishres_dlores_spr_filtered, + lts_aga_fm2_n0_p4_ishres_dlores_spr_filtered, + lts_aga_fm2_n1_p4_ishres_dlores_spr_filtered, + lts_aga_fm2_dpf0_p4_ishres_dlores_spr_filtered, + lts_aga_fm2_dpf1_p4_ishres_dlores_spr_filtered, + lts_aga_fm2_ehb0_p4_ishres_dlores_spr_filtered, + lts_aga_fm2_ehb1_p4_ishres_dlores_spr_filtered, + lts_aga_fm2_ham0_p4_ishres_dlores_spr_filtered, + lts_aga_fm2_ham1_p4_ishres_dlores_spr_filtered, + lts_aga_fm2_kehb0_p4_ishres_dlores_spr_filtered, + lts_aga_fm2_kehb1_p4_ishres_dlores_spr_filtered, + lts_aga_fm2_n0_p6_ishres_dlores_spr_filtered, + lts_aga_fm2_n1_p6_ishres_dlores_spr_filtered, + lts_aga_fm2_dpf0_p6_ishres_dlores_spr_filtered, + lts_aga_fm2_dpf1_p6_ishres_dlores_spr_filtered, + lts_aga_fm2_ehb0_p6_ishres_dlores_spr_filtered, + lts_aga_fm2_ehb1_p6_ishres_dlores_spr_filtered, + lts_aga_fm2_ham0_p6_ishres_dlores_spr_filtered, + lts_aga_fm2_ham1_p6_ishres_dlores_spr_filtered, + lts_aga_fm2_kehb0_p6_ishres_dlores_spr_filtered, + lts_aga_fm2_kehb1_p6_ishres_dlores_spr_filtered, + lts_aga_fm2_n0_p8_ishres_dlores_spr_filtered, + lts_aga_fm2_n1_p8_ishres_dlores_spr_filtered, + lts_aga_fm2_dpf0_p8_ishres_dlores_spr_filtered, + lts_aga_fm2_dpf1_p8_ishres_dlores_spr_filtered, + lts_aga_fm2_ehb0_p8_ishres_dlores_spr_filtered, + lts_aga_fm2_ehb1_p8_ishres_dlores_spr_filtered, + lts_aga_fm2_ham0_p8_ishres_dlores_spr_filtered, + lts_aga_fm2_ham1_p8_ishres_dlores_spr_filtered, + lts_aga_fm2_kehb0_p8_ishres_dlores_spr_filtered, + lts_aga_fm2_kehb1_p8_ishres_dlores_spr_filtered, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_fm2_n0_p2_ishres_dhires_filtered, + lts_aga_fm2_n1_p2_ishres_dhires_filtered, + lts_aga_fm2_dpf0_p2_ishres_dhires_filtered, + lts_aga_fm2_dpf1_p2_ishres_dhires_filtered, + lts_aga_fm2_ehb0_p2_ishres_dhires_filtered, + lts_aga_fm2_ehb1_p2_ishres_dhires_filtered, + lts_aga_fm2_ham0_p2_ishres_dhires_filtered, + lts_aga_fm2_ham1_p2_ishres_dhires_filtered, + lts_aga_fm2_kehb0_p2_ishres_dhires_filtered, + lts_aga_fm2_kehb1_p2_ishres_dhires_filtered, + lts_aga_fm2_n0_p4_ishres_dhires_filtered, + lts_aga_fm2_n1_p4_ishres_dhires_filtered, + lts_aga_fm2_dpf0_p4_ishres_dhires_filtered, + lts_aga_fm2_dpf1_p4_ishres_dhires_filtered, + lts_aga_fm2_ehb0_p4_ishres_dhires_filtered, + lts_aga_fm2_ehb1_p4_ishres_dhires_filtered, + lts_aga_fm2_ham0_p4_ishres_dhires_filtered, + lts_aga_fm2_ham1_p4_ishres_dhires_filtered, + lts_aga_fm2_kehb0_p4_ishres_dhires_filtered, + lts_aga_fm2_kehb1_p4_ishres_dhires_filtered, + lts_aga_fm2_n0_p6_ishres_dhires_filtered, + lts_aga_fm2_n1_p6_ishres_dhires_filtered, + lts_aga_fm2_dpf0_p6_ishres_dhires_filtered, + lts_aga_fm2_dpf1_p6_ishres_dhires_filtered, + lts_aga_fm2_ehb0_p6_ishres_dhires_filtered, + lts_aga_fm2_ehb1_p6_ishres_dhires_filtered, + lts_aga_fm2_ham0_p6_ishres_dhires_filtered, + lts_aga_fm2_ham1_p6_ishres_dhires_filtered, + lts_aga_fm2_kehb0_p6_ishres_dhires_filtered, + lts_aga_fm2_kehb1_p6_ishres_dhires_filtered, + lts_aga_fm2_n0_p8_ishres_dhires_filtered, + lts_aga_fm2_n1_p8_ishres_dhires_filtered, + lts_aga_fm2_dpf0_p8_ishres_dhires_filtered, + lts_aga_fm2_dpf1_p8_ishres_dhires_filtered, + lts_aga_fm2_ehb0_p8_ishres_dhires_filtered, + lts_aga_fm2_ehb1_p8_ishres_dhires_filtered, + lts_aga_fm2_ham0_p8_ishres_dhires_filtered, + lts_aga_fm2_ham1_p8_ishres_dhires_filtered, + lts_aga_fm2_kehb0_p8_ishres_dhires_filtered, + lts_aga_fm2_kehb1_p8_ishres_dhires_filtered, + lts_aga_fm2_n0_p2_ishres_dhires_spr_filtered, + lts_aga_fm2_n1_p2_ishres_dhires_spr_filtered, + lts_aga_fm2_dpf0_p2_ishres_dhires_spr_filtered, + lts_aga_fm2_dpf1_p2_ishres_dhires_spr_filtered, + lts_aga_fm2_ehb0_p2_ishres_dhires_spr_filtered, + lts_aga_fm2_ehb1_p2_ishres_dhires_spr_filtered, + lts_aga_fm2_ham0_p2_ishres_dhires_spr_filtered, + lts_aga_fm2_ham1_p2_ishres_dhires_spr_filtered, + lts_aga_fm2_kehb0_p2_ishres_dhires_spr_filtered, + lts_aga_fm2_kehb1_p2_ishres_dhires_spr_filtered, + lts_aga_fm2_n0_p4_ishres_dhires_spr_filtered, + lts_aga_fm2_n1_p4_ishres_dhires_spr_filtered, + lts_aga_fm2_dpf0_p4_ishres_dhires_spr_filtered, + lts_aga_fm2_dpf1_p4_ishres_dhires_spr_filtered, + lts_aga_fm2_ehb0_p4_ishres_dhires_spr_filtered, + lts_aga_fm2_ehb1_p4_ishres_dhires_spr_filtered, + lts_aga_fm2_ham0_p4_ishres_dhires_spr_filtered, + lts_aga_fm2_ham1_p4_ishres_dhires_spr_filtered, + lts_aga_fm2_kehb0_p4_ishres_dhires_spr_filtered, + lts_aga_fm2_kehb1_p4_ishres_dhires_spr_filtered, + lts_aga_fm2_n0_p6_ishres_dhires_spr_filtered, + lts_aga_fm2_n1_p6_ishres_dhires_spr_filtered, + lts_aga_fm2_dpf0_p6_ishres_dhires_spr_filtered, + lts_aga_fm2_dpf1_p6_ishres_dhires_spr_filtered, + lts_aga_fm2_ehb0_p6_ishres_dhires_spr_filtered, + lts_aga_fm2_ehb1_p6_ishres_dhires_spr_filtered, + lts_aga_fm2_ham0_p6_ishres_dhires_spr_filtered, + lts_aga_fm2_ham1_p6_ishres_dhires_spr_filtered, + lts_aga_fm2_kehb0_p6_ishres_dhires_spr_filtered, + lts_aga_fm2_kehb1_p6_ishres_dhires_spr_filtered, + lts_aga_fm2_n0_p8_ishres_dhires_spr_filtered, + lts_aga_fm2_n1_p8_ishres_dhires_spr_filtered, + lts_aga_fm2_dpf0_p8_ishres_dhires_spr_filtered, + lts_aga_fm2_dpf1_p8_ishres_dhires_spr_filtered, + lts_aga_fm2_ehb0_p8_ishres_dhires_spr_filtered, + lts_aga_fm2_ehb1_p8_ishres_dhires_spr_filtered, + lts_aga_fm2_ham0_p8_ishres_dhires_spr_filtered, + lts_aga_fm2_ham1_p8_ishres_dhires_spr_filtered, + lts_aga_fm2_kehb0_p8_ishres_dhires_spr_filtered, + lts_aga_fm2_kehb1_p8_ishres_dhires_spr_filtered, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +}; diff --git a/linetoscr_aga_fm2_genlock.cpp b/linetoscr_aga_fm2_genlock.cpp index c24d3b04..a1a4dbbe 100644 --- a/linetoscr_aga_fm2_genlock.cpp +++ b/linetoscr_aga_fm2_genlock.cpp @@ -67,6 +67,10 @@ static void lts_aga_fm2_n0_p4_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n0_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p4_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -133,6 +137,10 @@ static void lts_aga_fm2_n1_p4_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n1_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p4_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -201,6 +209,10 @@ static void lts_aga_fm2_dpf0_p4_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p4_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -272,30 +284,58 @@ static void lts_aga_fm2_dpf1_p4_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p4_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p4_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p4_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm2_ham0_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p4_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm2_ham1_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p4_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p4_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p4_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p8_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -359,6 +399,10 @@ static void lts_aga_fm2_n0_p8_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n0_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p8_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -425,6 +469,10 @@ static void lts_aga_fm2_n1_p8_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n1_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p8_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -493,6 +541,10 @@ static void lts_aga_fm2_dpf0_p8_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p8_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -564,14 +616,26 @@ static void lts_aga_fm2_dpf1_p8_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p8_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p8_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p8_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -635,6 +699,10 @@ static void lts_aga_fm2_ham0_p8_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p8_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -701,14 +769,26 @@ static void lts_aga_fm2_ham1_p8_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p8_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p8_ilores_dlores_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p8_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p4_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -789,6 +869,10 @@ static void lts_aga_fm2_n0_p4_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n0_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p4_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -872,6 +956,10 @@ static void lts_aga_fm2_n1_p4_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n1_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p4_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -957,6 +1045,10 @@ static void lts_aga_fm2_dpf0_p4_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p4_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1045,30 +1137,58 @@ static void lts_aga_fm2_dpf1_p4_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p4_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p4_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p4_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ham0_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p4_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ham1_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p4_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p4_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p4_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p8_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1149,6 +1269,10 @@ static void lts_aga_fm2_n0_p8_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n0_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p8_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1232,6 +1356,10 @@ static void lts_aga_fm2_n1_p8_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n1_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p8_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1317,6 +1445,10 @@ static void lts_aga_fm2_dpf0_p8_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p8_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1405,14 +1537,26 @@ static void lts_aga_fm2_dpf1_p8_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p8_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p8_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p8_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1493,6 +1637,10 @@ static void lts_aga_fm2_ham0_p8_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p8_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1576,14 +1724,26 @@ static void lts_aga_fm2_ham1_p8_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p8_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p8_ilores_dlores_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p8_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p4_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -1648,7 +1808,7 @@ static void lts_aga_fm2_n0_p4_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm2_n1_p4_ihires_dlores_genlock(void) +static void lts_aga_fm2_n0_p4_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1676,16 +1836,33 @@ static void lts_aga_fm2_n1_p4_ihires_dlores_genlock(void) } shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + copybpl4_64(); } loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -1715,7 +1892,7 @@ static void lts_aga_fm2_n1_p4_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p4_ihires_dlores_genlock(void) +static void lts_aga_fm2_n1_p4_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1736,19 +1913,17 @@ static void lts_aga_fm2_dpf0_p4_ihires_dlores_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); } loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; @@ -1784,7 +1959,7 @@ static void lts_aga_fm2_dpf0_p4_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p4_ihires_dlores_genlock(void) +static void lts_aga_fm2_n1_p4_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1805,13 +1980,8 @@ static void lts_aga_fm2_dpf1_p4_ihires_dlores_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } @@ -1824,9 +1994,32 @@ static void lts_aga_fm2_dpf1_p4_ihires_dlores_genlock(void) } loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -1856,31 +2049,7 @@ static void lts_aga_fm2_dpf1_p4_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p4_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p4_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p4_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p4_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p4_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p4_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p8_ihires_dlores_genlock(void) +static void lts_aga_fm2_dpf0_p4_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1901,18 +2070,23 @@ static void lts_aga_fm2_n0_p8_ihires_dlores_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl4_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; - shiftbpl8_64(); + shiftbpl4_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -1944,7 +2118,7 @@ static void lts_aga_fm2_n0_p8_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm2_n1_p8_ihires_dlores_genlock(void) +static void lts_aga_fm2_dpf0_p4_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1965,23 +2139,50 @@ static void lts_aga_fm2_n1_p8_ihires_dlores_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl4_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; - shiftbpl8_64(); + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2011,7 +2212,7 @@ static void lts_aga_fm2_n1_p8_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p8_ihires_dlores_genlock(void) +static void lts_aga_fm2_dpf1_p4_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2042,13 +2243,16 @@ static void lts_aga_fm2_dpf0_p8_ihires_dlores_genlock(void) } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl4e_64(); } - loaded_pix = getbpl8_64(); + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; - shiftbpl8_64(); + shiftbpl4_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -2080,7 +2284,7 @@ static void lts_aga_fm2_dpf0_p8_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p8_ihires_dlores_genlock(void) +static void lts_aga_fm2_dpf1_p4_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2111,18 +2315,46 @@ static void lts_aga_fm2_dpf1_p8_ihires_dlores_genlock(void) } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl4e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl4o_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; - shiftbpl8_64(); + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2152,15 +2384,55 @@ static void lts_aga_fm2_dpf1_p8_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p8_ihires_dlores_genlock(void) +static void lts_aga_fm2_ehb0_p4_ihires_dlores_genlock(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p8_ihires_dlores_genlock(void) +static void lts_aga_fm2_ehb0_p4_ihires_dlores_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm2_ham0_p8_ihires_dlores_genlock(void) +static void lts_aga_fm2_ehb1_p4_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2181,8 +2453,8 @@ static void lts_aga_fm2_ham0_p8_ihires_dlores_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); - gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } @@ -2192,23 +2464,7 @@ static void lts_aga_fm2_ham0_p8_ihires_dlores_genlock(void) } loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; - uae_u8 pix1 = 0; - uae_u8 gpix1 = 0xff; - uae_u32 dpix_val1 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val1 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); - } - last_bpl_pix = pix1; - } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); - } - loaded_pix = getbpl8_64(); - loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -2240,7 +2496,7 @@ static void lts_aga_fm2_ham0_p8_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p8_ihires_dlores_genlock(void) +static void lts_aga_fm2_n0_p8_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2261,17 +2517,14 @@ static void lts_aga_fm2_ham1_p8_ihires_dlores_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); - gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl8_64(); } loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; @@ -2279,24 +2532,25 @@ static void lts_aga_fm2_ham1_p8_ihires_dlores_genlock(void) uae_u8 gpix1 = 0xff; uae_u32 dpix_val1 = BLANK_COLOR; if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix1; } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl8_64(); } loaded_pix = getbpl8_64(); loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2326,15 +2580,7 @@ static void lts_aga_fm2_ham1_p8_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p8_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p8_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p4_ihires_dlores_spr_genlock(void) +static void lts_aga_fm2_n1_p8_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2346,7 +2592,6 @@ static void lts_aga_fm2_n0_p4_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -2361,31 +2606,18 @@ static void lts_aga_fm2_n0_p4_ihires_dlores_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl8e_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + shiftbpl8_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2415,7 +2647,7 @@ static void lts_aga_fm2_n0_p4_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_n1_p4_ihires_dlores_spr_genlock(void) +static void lts_aga_fm2_n1_p8_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2427,7 +2659,6 @@ static void lts_aga_fm2_n1_p4_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -2442,34 +2673,41 @@ static void lts_aga_fm2_n1_p4_ihires_dlores_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); + copybpl8e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + copybpl8o_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl8_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2499,7 +2737,7 @@ static void lts_aga_fm2_n1_p4_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p4_ihires_dlores_spr_genlock(void) +static void lts_aga_fm2_dpf0_p8_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2511,7 +2749,6 @@ static void lts_aga_fm2_dpf0_p4_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -2531,31 +2768,15 @@ static void lts_aga_fm2_dpf0_p4_ihires_dlores_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); - } - loaded_pix = getbpl4_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + copybpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + shiftbpl8_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2585,7 +2806,7 @@ static void lts_aga_fm2_dpf0_p4_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p4_ihires_dlores_spr_genlock(void) +static void lts_aga_fm2_dpf0_p8_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2597,7 +2818,6 @@ static void lts_aga_fm2_dpf1_p4_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -2617,34 +2837,40 @@ static void lts_aga_fm2_dpf1_p4_ihires_dlores_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + copybpl8_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl8_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2674,31 +2900,7 @@ static void lts_aga_fm2_dpf1_p4_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p4_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p4_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p4_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p4_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p4_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p4_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p8_ihires_dlores_spr_genlock(void) +static void lts_aga_fm2_dpf1_p8_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2710,7 +2912,6 @@ static void lts_aga_fm2_n0_p8_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -2720,36 +2921,28 @@ static void lts_aga_fm2_n0_p8_ihires_dlores_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); } - loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; shiftbpl8_64(); internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2779,7 +2972,7 @@ static void lts_aga_fm2_n0_p8_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_n1_p8_ihires_dlores_spr_genlock(void) +static void lts_aga_fm2_dpf1_p8_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2791,7 +2984,6 @@ static void lts_aga_fm2_n1_p8_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -2801,8 +2993,13 @@ static void lts_aga_fm2_n1_p8_ihires_dlores_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } @@ -2814,26 +3011,38 @@ static void lts_aga_fm2_n1_p8_ihires_dlores_spr_genlock(void) copybpl8o_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2863,7 +3072,23 @@ static void lts_aga_fm2_n1_p8_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p8_ihires_dlores_spr_genlock(void) +static void lts_aga_fm2_ehb0_p8_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2875,7 +3100,6 @@ static void lts_aga_fm2_dpf0_p8_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -2885,13 +3109,8 @@ static void lts_aga_fm2_dpf0_p8_ihires_dlores_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); } last_bpl_pix = pix0; } @@ -2900,26 +3119,26 @@ static void lts_aga_fm2_dpf0_p8_ihires_dlores_spr_genlock(void) copybpl8_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -2949,7 +3168,7 @@ static void lts_aga_fm2_dpf0_p8_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p8_ihires_dlores_spr_genlock(void) +static void lts_aga_fm2_ham0_p8_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -2961,7 +3180,6 @@ static void lts_aga_fm2_dpf1_p8_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -2971,44 +3189,40 @@ static void lts_aga_fm2_dpf1_p8_ihires_dlores_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); } last_bpl_pix = pix0; } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl8_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } - } loaded_pixs[0] = loaded_pix; - shiftbpl8_64(); - internal_pixel_cnt += 4; - if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + gpix1 = get_genlock_transparency((pix1 >> 2) & 63); } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -3038,15 +3252,7 @@ static void lts_aga_fm2_dpf1_p8_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p8_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p8_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p8_ihires_dlores_spr_genlock(void) +static void lts_aga_fm2_ham1_p8_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3058,7 +3264,6 @@ static void lts_aga_fm2_ham0_p8_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -3075,17 +3280,12 @@ static void lts_aga_fm2_ham0_p8_ihires_dlores_spr_genlock(void) } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); } - loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; uae_u8 pix1 = 0; uae_u8 gpix1 = 0xff; @@ -3100,20 +3300,15 @@ static void lts_aga_fm2_ham0_p8_ihires_dlores_spr_genlock(void) } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } loaded_pix = getbpl8_64(); loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -3143,7 +3338,7 @@ static void lts_aga_fm2_ham0_p8_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p8_ihires_dlores_spr_genlock(void) +static void lts_aga_fm2_ham1_p8_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3155,7 +3350,6 @@ static void lts_aga_fm2_ham1_p8_ihires_dlores_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -3178,23 +3372,18 @@ static void lts_aga_fm2_ham1_p8_ihires_dlores_spr_genlock(void) copybpl8o_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } - } loaded_pixs[0] = loaded_pix; uae_u8 pix1 = 0; uae_u8 gpix1 = 0xff; uae_u32 dpix_val1 = BLANK_COLOR; if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + gpix1 = get_genlock_transparency((pix1 >> 2) & 63); } last_bpl_pix = pix1; } @@ -3209,14 +3398,7 @@ static void lts_aga_fm2_ham1_p8_ihires_dlores_spr_genlock(void) loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 4; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -3246,175 +3428,23 @@ static void lts_aga_fm2_ham1_p8_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p8_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p8_ihires_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_n1_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_dpf0_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_dpf1_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb0_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p4_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_n1_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_dpf0_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_dpf1_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb0_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p8_ishres_dlores_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_n1_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_dpf0_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_dpf1_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb0_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p4_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p8_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_n1_p8_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_dpf0_p8_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_dpf1_p8_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb0_p8_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p8_ishres_dlores_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p8_ishres_dlores_spr_genlock(void) +static void lts_aga_fm2_kehb0_p8_ihires_dlores_genlock(void) { lts_null(); } -static void lts_aga_fm2_ham1_p8_ishres_dlores_spr_genlock(void) +static void lts_aga_fm2_kehb0_p8_ihires_dlores_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm2_kehb0_p8_ishres_dlores_spr_genlock(void) +static void lts_aga_fm2_kehb1_p8_ihires_dlores_genlock(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p8_ishres_dlores_spr_genlock(void) +static void lts_aga_fm2_kehb1_p8_ihires_dlores_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm2_n0_p4_ilores_dhires_genlock(void) +static void lts_aga_fm2_n0_p4_ihires_dlores_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3426,6 +3456,7 @@ static void lts_aga_fm2_n0_p4_ilores_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -3440,17 +3471,5400 @@ static void lts_aga_fm2_n0_p4_ilores_dhires_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl4_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n0_p4_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p4_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p4_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p4_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p4_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p4_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl4_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p4_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ehb0_p4_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n0_p8_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p8_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p8_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p8_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p8_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p8_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p8_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ehb0_p8_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham0_p8_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + gpix1 = get_genlock_transparency((pix1 >> 2) & 63); + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham1_p8_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham1_p8_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + gpix1 = get_genlock_transparency((pix1 >> 2) & 63); + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 127) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; + internal_pixel_cnt += 4; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_kehb0_p8_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p8_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ihires_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ishres_dlores_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ishres_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ishres_dlores_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ishres_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n0_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p4_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e_64(); + loaded_pix = getbpl4_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e_64(); + loaded_pix = getbpl4_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p4_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p4_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e_64(); + loaded_pix = getbpl4_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e_64(); + loaded_pix = getbpl4_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n0_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p8_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p8_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p8_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = decode_ham_pixel_aga(pix2); + gpix2 = get_genlock_transparency((pix2 >> 2) & 63); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham0_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p8_ilores_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = decode_ham_pixel_aga(pix2); + gpix2 = get_genlock_transparency((pix2 >> 2) & 63); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham1_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p8_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ilores_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ilores_dhires_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n0_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p4_ilores_dhires_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e_64(); + loaded_pix = getbpl4_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e_64(); + loaded_pix = getbpl4_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p4_ilores_dhires_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p4_ilores_dhires_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e_64(); + loaded_pix = getbpl4_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl4e_64(); + loaded_pix = getbpl4_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl4o_64(); + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl4_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl4_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ilores_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ilores_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ilores_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ilores_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ilores_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ilores_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ilores_dhires_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n0_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p8_ilores_dhires_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_n1_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p8_ilores_dhires_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf0_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p8_ilores_dhires_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_dpf1_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ilores_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ilores_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ilores_dhires_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = decode_ham_pixel_aga(pix2); + gpix2 = get_genlock_transparency((pix2 >> 2) & 63); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham0_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p8_ilores_dhires_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + } + last_bpl_pix = pix0; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + loaded_pixs[0] = loaded_pix; + internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); + uae_u8 pix2 = 0; + uae_u8 gpix2 = 0xff; + uae_u32 dpix_val2 = BLANK_COLOR; + if (!denise_blank_active) { + gpix2 = get_genlock_transparency_border(); + dpix_val2 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix2 = loaded_pixs[2]; + clxdat |= bplcoltable[pix2]; + dpix_val2 = decode_ham_pixel_aga(pix2); + gpix2 = get_genlock_transparency((pix2 >> 2) & 63); + } + last_bpl_pix = pix2; + } + bplshiftcnt[0] += 2; + if (bplshiftcnt[0] >= 4) { + bplshiftcnt[0] = 0; + shiftbpl8e_64(); + loaded_pix = getbpl8_64(); + } + bplshiftcnt[1] += 2; + if (bplshiftcnt[1] >= 4) { + bplshiftcnt[1] = 0; + shiftbpl8o_64(); + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + bplshiftcnt[0] = 0; + loaded_pix = getbpl8_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + bplshiftcnt[1] = 0; + loaded_pix = getbpl8_64(); + } + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } + loaded_pixs[2] = loaded_pix; + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } + dtbuf[h][2] = dpix_val2; + dtgbuf[h][2] = gpix2; + uae_u32 t0 = dtbuf[h ^ lol][0]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + uae_u32 t2 = dtbuf[h ^ lol][2]; + #ifdef DEBUGGER + if (decode_specials_debug) { + t2 = decode_denise_specials_debug(t2, cnt + 2); + } + #endif + *buf1++ = t2; + *buf2++ = t2; + *gbuf++ = dtgbuf[h ^ lol][2]; + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_aga_fm2_ham1_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p8_ilores_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ilores_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ihires_dhires_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + int cnt_next = denise_hcounter_next << 2; + if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix0; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); } + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -3467,17 +8881,11 @@ static void lts_aga_fm2_n0_p4_ilores_dhires_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl4_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -3521,7 +8929,11 @@ static void lts_aga_fm2_n0_p4_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_n1_p4_ilores_dhires_genlock(void) +static void lts_aga_fm2_n0_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p4_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3547,28 +8959,14 @@ static void lts_aga_fm2_n1_p4_ilores_dhires_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e_64(); - loaded_pix = getbpl4_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl4e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl4o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -3585,28 +8983,14 @@ static void lts_aga_fm2_n1_p4_ilores_dhires_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e_64(); - loaded_pix = getbpl4_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl4e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl4o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -3650,7 +9034,11 @@ static void lts_aga_fm2_n1_p4_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p4_ilores_dhires_genlock(void) +static void lts_aga_fm2_n1_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p4_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3681,17 +9069,11 @@ static void lts_aga_fm2_dpf0_p4_ilores_dhires_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl4_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -3713,17 +9095,11 @@ static void lts_aga_fm2_dpf0_p4_ilores_dhires_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl4_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -3767,7 +9143,11 @@ static void lts_aga_fm2_dpf0_p4_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p4_ilores_dhires_genlock(void) +static void lts_aga_fm2_dpf0_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p4_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3798,28 +9178,14 @@ static void lts_aga_fm2_dpf1_p4_ilores_dhires_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e_64(); - loaded_pix = getbpl4_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl4e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl4o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -3841,28 +9207,14 @@ static void lts_aga_fm2_dpf1_p4_ilores_dhires_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e_64(); - loaded_pix = getbpl4_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl4e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl4o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -3906,31 +9258,59 @@ static void lts_aga_fm2_dpf1_p4_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p4_ilores_dhires_genlock(void) +static void lts_aga_fm2_dpf1_p4_ihires_dhires_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p4_ilores_dhires_genlock(void) +static void lts_aga_fm2_ehb0_p4_ihires_dhires_genlock(void) { lts_null(); } -static void lts_aga_fm2_ham0_p4_ilores_dhires_genlock(void) +static void lts_aga_fm2_ehb0_p4_ihires_dhires_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm2_ham1_p4_ilores_dhires_genlock(void) +static void lts_aga_fm2_ehb1_p4_ihires_dhires_genlock(void) { lts_null(); } -static void lts_aga_fm2_kehb0_p4_ilores_dhires_genlock(void) +static void lts_aga_fm2_ehb1_p4_ihires_dhires_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p4_ilores_dhires_genlock(void) +static void lts_aga_fm2_ham0_p4_ihires_dhires_genlock(void) { lts_null(); } -static void lts_aga_fm2_n0_p8_ilores_dhires_genlock(void) +static void lts_aga_fm2_ham0_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ihires_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ihires_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ihires_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3956,17 +9336,11 @@ static void lts_aga_fm2_n0_p8_ilores_dhires_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -3983,17 +9357,11 @@ static void lts_aga_fm2_n0_p8_ilores_dhires_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -4037,7 +9405,11 @@ static void lts_aga_fm2_n0_p8_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_n1_p8_ilores_dhires_genlock(void) +static void lts_aga_fm2_n0_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p8_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4063,28 +9435,14 @@ static void lts_aga_fm2_n1_p8_ilores_dhires_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -4101,28 +9459,14 @@ static void lts_aga_fm2_n1_p8_ilores_dhires_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -4166,7 +9510,11 @@ static void lts_aga_fm2_n1_p8_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p8_ilores_dhires_genlock(void) +static void lts_aga_fm2_n1_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p8_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4197,17 +9545,11 @@ static void lts_aga_fm2_dpf0_p8_ilores_dhires_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -4229,17 +9571,11 @@ static void lts_aga_fm2_dpf0_p8_ilores_dhires_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -4283,7 +9619,11 @@ static void lts_aga_fm2_dpf0_p8_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p8_ilores_dhires_genlock(void) +static void lts_aga_fm2_dpf0_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p8_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4314,28 +9654,14 @@ static void lts_aga_fm2_dpf1_p8_ilores_dhires_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -4357,28 +9683,14 @@ static void lts_aga_fm2_dpf1_p8_ilores_dhires_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -4422,15 +9734,27 @@ static void lts_aga_fm2_dpf1_p8_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p8_ilores_dhires_genlock(void) +static void lts_aga_fm2_dpf1_p8_ihires_dhires_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p8_ilores_dhires_genlock(void) +static void lts_aga_fm2_ehb0_p8_ihires_dhires_genlock(void) { lts_null(); } -static void lts_aga_fm2_ham0_p8_ilores_dhires_genlock(void) +static void lts_aga_fm2_ehb0_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ihires_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4456,17 +9780,11 @@ static void lts_aga_fm2_ham0_p8_ilores_dhires_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -4483,17 +9801,11 @@ static void lts_aga_fm2_ham0_p8_ilores_dhires_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -4537,7 +9849,11 @@ static void lts_aga_fm2_ham0_p8_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p8_ilores_dhires_genlock(void) +static void lts_aga_fm2_ham0_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p8_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4563,28 +9879,14 @@ static void lts_aga_fm2_ham1_p8_ilores_dhires_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; @@ -4601,28 +9903,14 @@ static void lts_aga_fm2_ham1_p8_ilores_dhires_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { @@ -4666,15 +9954,27 @@ static void lts_aga_fm2_ham1_p8_ilores_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p8_ilores_dhires_genlock(void) +static void lts_aga_fm2_ham1_p8_ihires_dhires_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p8_ilores_dhires_genlock(void) +static void lts_aga_fm2_kehb0_p8_ihires_dhires_genlock(void) { lts_null(); } -static void lts_aga_fm2_n0_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_kehb0_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ihires_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4701,17 +10001,11 @@ static void lts_aga_fm2_n0_p4_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl4_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -4737,17 +10031,11 @@ static void lts_aga_fm2_n0_p4_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl4_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -4815,7 +10103,11 @@ static void lts_aga_fm2_n0_p4_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_n1_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_n0_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p4_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4842,28 +10134,14 @@ static void lts_aga_fm2_n1_p4_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e_64(); - loaded_pix = getbpl4_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl4e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl4o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -4883,34 +10161,20 @@ static void lts_aga_fm2_n1_p4_ilores_dhires_spr_genlock(void) dpix_val2 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; - clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; - gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); - } - last_bpl_pix = pix2; - } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e_64(); - loaded_pix = getbpl4_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o_64(); - loaded_pix = getbpl4_64(); + clxdat |= bplcoltable[pix2]; + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix2; } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl4e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl4o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -4978,7 +10242,11 @@ static void lts_aga_fm2_n1_p4_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_n1_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p4_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5010,17 +10278,11 @@ static void lts_aga_fm2_dpf0_p4_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl4_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -5051,17 +10313,11 @@ static void lts_aga_fm2_dpf0_p4_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl4_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -5129,7 +10385,11 @@ static void lts_aga_fm2_dpf0_p4_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_dpf0_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p4_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5161,28 +10421,14 @@ static void lts_aga_fm2_dpf1_p4_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e_64(); - loaded_pix = getbpl4_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl4e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl4o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -5213,28 +10459,14 @@ static void lts_aga_fm2_dpf1_p4_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl4e_64(); - loaded_pix = getbpl4_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl4o_64(); - loaded_pix = getbpl4_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl4e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl4_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl4o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl4_64(); } + loaded_pix = getbpl4_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -5302,31 +10534,59 @@ static void lts_aga_fm2_dpf1_p4_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_dpf1_p4_ihires_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_ehb0_p4_ihires_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm2_ham0_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_ehb0_p4_ihires_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm2_ham1_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_ehb1_p4_ihires_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm2_kehb0_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_ehb1_p4_ihires_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p4_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_ham0_p4_ihires_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm2_n0_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_ham0_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ihires_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ihires_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ihires_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5353,17 +10613,11 @@ static void lts_aga_fm2_n0_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -5389,17 +10643,11 @@ static void lts_aga_fm2_n0_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -5467,7 +10715,11 @@ static void lts_aga_fm2_n0_p8_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_n1_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_n0_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n1_p8_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5494,28 +10746,14 @@ static void lts_aga_fm2_n1_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -5541,28 +10779,14 @@ static void lts_aga_fm2_n1_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -5630,7 +10854,11 @@ static void lts_aga_fm2_n1_p8_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_n1_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf0_p8_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5662,17 +10890,11 @@ static void lts_aga_fm2_dpf0_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -5703,17 +10925,11 @@ static void lts_aga_fm2_dpf0_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -5781,7 +10997,11 @@ static void lts_aga_fm2_dpf0_p8_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_dpf0_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_dpf1_p8_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5813,28 +11033,14 @@ static void lts_aga_fm2_dpf1_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -5865,28 +11071,14 @@ static void lts_aga_fm2_dpf1_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -5954,15 +11146,27 @@ static void lts_aga_fm2_dpf1_p8_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_dpf1_p8_ihires_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_ehb0_p8_ihires_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm2_ham0_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_ehb0_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ihires_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -5989,17 +11193,11 @@ static void lts_aga_fm2_ham0_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -6025,17 +11223,11 @@ static void lts_aga_fm2_ham0_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -6103,7 +11295,11 @@ static void lts_aga_fm2_ham0_p8_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_ham0_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p8_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6130,28 +11326,14 @@ static void lts_aga_fm2_ham1_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -6177,28 +11359,14 @@ static void lts_aga_fm2_ham1_p8_ilores_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - bplshiftcnt[0] += 2; - if (bplshiftcnt[0] >= 4) { - bplshiftcnt[0] = 0; - shiftbpl8e_64(); - loaded_pix = getbpl8_64(); - } - bplshiftcnt[1] += 2; - if (bplshiftcnt[1] >= 4) { - bplshiftcnt[1] = 0; - shiftbpl8o_64(); - loaded_pix = getbpl8_64(); - } - if (bpldat_copy[0] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[0]) { + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); - bplshiftcnt[0] = 0; - loaded_pix = getbpl8_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 255) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); - bplshiftcnt[1] = 0; - loaded_pix = getbpl8_64(); } + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -6266,15 +11434,27 @@ static void lts_aga_fm2_ham1_p8_ilores_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_ham1_p8_ihires_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p8_ilores_dhires_spr_genlock(void) +static void lts_aga_fm2_kehb0_p8_ihires_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm2_n0_p4_ihires_dhires_genlock(void) +static void lts_aga_fm2_kehb0_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ihires_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ishres_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6301,11 +11481,12 @@ static void lts_aga_fm2_n0_p4_ihires_dhires_genlock(void) last_bpl_pix = pix0; } shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl4_64(); } loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; @@ -6322,11 +11503,12 @@ static void lts_aga_fm2_n0_p4_ihires_dhires_genlock(void) last_bpl_pix = pix2; } shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl4_64(); } loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -6369,7 +11551,7 @@ static void lts_aga_fm2_n0_p4_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_n1_p4_ihires_dhires_genlock(void) +static void lts_aga_fm2_n0_p4_ishres_dhires_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6396,14 +11578,31 @@ static void lts_aga_fm2_n1_p4_ihires_dhires_genlock(void) last_bpl_pix = pix0; } shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); } loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; @@ -6420,18 +11619,37 @@ static void lts_aga_fm2_n1_p4_ihires_dhires_genlock(void) last_bpl_pix = pix2; } shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); } loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + gpix3 = get_genlock_transparency(pix3 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix3; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -6470,7 +11688,7 @@ static void lts_aga_fm2_n1_p4_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p4_ihires_dhires_genlock(void) +static void lts_aga_fm2_n1_p4_ishres_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6491,22 +11709,21 @@ static void lts_aga_fm2_dpf0_p4_ihires_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); } loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; @@ -6517,22 +11734,21 @@ static void lts_aga_fm2_dpf0_p4_ihires_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; - gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix2; } shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); } loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -6575,7 +11791,7 @@ static void lts_aga_fm2_dpf0_p4_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p4_ihires_dhires_genlock(void) +static void lts_aga_fm2_n1_p4_ishres_dhires_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6596,25 +11812,43 @@ static void lts_aga_fm2_dpf1_p4_ihires_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { copybpl4e_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { copybpl4o_64(); } loaded_pix = getbpl4_64(); - loaded_pixs[0] = loaded_pix; + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; @@ -6625,29 +11859,49 @@ static void lts_aga_fm2_dpf1_p4_ihires_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; - gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix2; } shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl4e_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { copybpl4o_64(); } loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + gpix3 = get_genlock_transparency(pix3 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix3; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -6686,31 +11940,7 @@ static void lts_aga_fm2_dpf1_p4_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p4_ihires_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p4_ihires_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p4_ihires_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p4_ihires_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p4_ihires_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p4_ihires_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p8_ihires_dhires_genlock(void) +static void lts_aga_fm2_dpf0_p4_ishres_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6731,17 +11961,23 @@ static void lts_aga_fm2_n0_p8_ihires_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; @@ -6752,17 +11988,23 @@ static void lts_aga_fm2_n0_p8_ihires_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; - gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); } last_bpl_pix = pix2; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -6805,7 +12047,7 @@ static void lts_aga_fm2_n0_p8_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_n1_p8_ihires_dhires_genlock(void) +static void lts_aga_fm2_dpf0_p4_ishres_dhires_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6826,20 +12068,47 @@ static void lts_aga_fm2_n1_p8_ihires_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; @@ -6850,24 +12119,53 @@ static void lts_aga_fm2_n1_p8_ihires_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; - gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); } last_bpl_pix = pix2; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + gpix3 = get_genlock_transparency(dpf_lookup[pix3]); + } + last_bpl_pix = pix3; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -6906,7 +12204,7 @@ static void lts_aga_fm2_n1_p8_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p8_ihires_dhires_genlock(void) +static void lts_aga_fm2_dpf1_p4_ishres_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -6937,12 +12235,16 @@ static void lts_aga_fm2_dpf0_p8_ihires_dhires_genlock(void) } last_bpl_pix = pix0; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); } - loaded_pix = getbpl8_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); loaded_pixs[0] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; @@ -6963,12 +12265,16 @@ static void lts_aga_fm2_dpf0_p8_ihires_dhires_genlock(void) } last_bpl_pix = pix2; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); } - loaded_pix = getbpl8_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; + shiftbpl4_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -7011,7 +12317,7 @@ static void lts_aga_fm2_dpf0_p8_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p8_ihires_dhires_genlock(void) +static void lts_aga_fm2_dpf1_p4_ishres_dhires_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7042,15 +12348,43 @@ static void lts_aga_fm2_dpf1_p8_ihires_dhires_genlock(void) } last_bpl_pix = pix0; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); } - loaded_pix = getbpl8_64(); - loaded_pixs[0] = loaded_pix; + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; @@ -7071,19 +12405,49 @@ static void lts_aga_fm2_dpf1_p8_ihires_dhires_genlock(void) } last_bpl_pix = pix2; } - shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); } - loaded_pix = getbpl8_64(); + loaded_pix = getbpl4_64(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + gpix3 = get_genlock_transparency(dpf_lookup[pix3]); + } + last_bpl_pix = pix3; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -7122,15 +12486,55 @@ static void lts_aga_fm2_dpf1_p8_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p8_ihires_dhires_genlock(void) +static void lts_aga_fm2_ehb0_p4_ishres_dhires_genlock(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p8_ihires_dhires_genlock(void) +static void lts_aga_fm2_ehb0_p4_ishres_dhires_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm2_ham0_p8_ihires_dhires_genlock(void) +static void lts_aga_fm2_ehb1_p4_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ishres_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7151,17 +12555,18 @@ static void lts_aga_fm2_ham0_p8_ihires_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); - gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl8_64(); } loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; @@ -7172,17 +12577,18 @@ static void lts_aga_fm2_ham0_p8_ihires_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); - gpix2 = get_genlock_transparency((pix2 >> 2) & 63); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix2; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl8_64(); } loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -7225,7 +12631,7 @@ static void lts_aga_fm2_ham0_p8_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p8_ihires_dhires_genlock(void) +static void lts_aga_fm2_n0_p8_ishres_dhires_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7246,20 +12652,37 @@ static void lts_aga_fm2_ham1_p8_ihires_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); - gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; @@ -7270,24 +12693,43 @@ static void lts_aga_fm2_ham1_p8_ihires_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); - gpix2 = get_genlock_transparency((pix2 >> 2) & 63); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix2; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + gpix3 = get_genlock_transparency(pix3 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix3; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -7326,15 +12768,7 @@ static void lts_aga_fm2_ham1_p8_ihires_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p8_ihires_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p8_ihires_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p4_ihires_dhires_spr_genlock(void) +static void lts_aga_fm2_n1_p8_ishres_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7346,7 +12780,6 @@ static void lts_aga_fm2_n0_p4_ihires_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -7361,22 +12794,17 @@ static void lts_aga_fm2_n0_p4_ihires_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -7391,40 +12819,20 @@ static void lts_aga_fm2_n0_p4_ihires_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -7463,7 +12871,7 @@ static void lts_aga_fm2_n0_p4_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_n1_p4_ihires_dhires_spr_genlock(void) +static void lts_aga_fm2_n1_p8_ishres_dhires_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7475,7 +12883,6 @@ static void lts_aga_fm2_n1_p4_ihires_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -7490,25 +12897,39 @@ static void lts_aga_fm2_n1_p4_ihires_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl8_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -7523,43 +12944,44 @@ static void lts_aga_fm2_n1_p4_ihires_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pix = getbpl8_64(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + gpix3 = get_genlock_transparency(pix3 ^ bplcon4_denise_xor_val); } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -7598,7 +13020,7 @@ static void lts_aga_fm2_n1_p4_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p4_ihires_dhires_spr_genlock(void) +static void lts_aga_fm2_dpf0_p8_ishres_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7610,7 +13032,6 @@ static void lts_aga_fm2_dpf0_p4_ihires_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -7630,22 +13051,14 @@ static void lts_aga_fm2_dpf0_p4_ihires_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); - } - loaded_pix = getbpl4_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -7665,40 +13078,17 @@ static void lts_aga_fm2_dpf0_p4_ihires_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); - } - loaded_pix = getbpl4_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -7737,7 +13127,7 @@ static void lts_aga_fm2_dpf0_p4_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p4_ihires_dhires_spr_genlock(void) +static void lts_aga_fm2_dpf0_p8_ishres_dhires_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7749,7 +13139,6 @@ static void lts_aga_fm2_dpf1_p4_ihires_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -7769,25 +13158,38 @@ static void lts_aga_fm2_dpf1_p4_ihires_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pix = getbpl8_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -7807,43 +13209,43 @@ static void lts_aga_fm2_dpf1_p4_ihires_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - shiftbpl4_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } - loaded_pix = getbpl4_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pix = getbpl8_64(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + gpix3 = get_genlock_transparency(dpf_lookup[pix3]); } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -7882,31 +13284,7 @@ static void lts_aga_fm2_dpf1_p4_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p4_ihires_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p4_ihires_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p4_ihires_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p4_ihires_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p4_ihires_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p4_ihires_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm2_dpf1_p8_ishres_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -7918,7 +13296,6 @@ static void lts_aga_fm2_n0_p8_ihires_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -7928,27 +13305,27 @@ static void lts_aga_fm2_n0_p8_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); } - loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -7958,45 +13335,30 @@ static void lts_aga_fm2_n0_p8_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; - gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); } last_bpl_pix = pix2; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); } - loaded_pix = getbpl8_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } + loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -8035,7 +13397,7 @@ static void lts_aga_fm2_n0_p8_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_n1_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm2_dpf1_p8_ishres_dhires_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8047,7 +13409,6 @@ static void lts_aga_fm2_n1_p8_ihires_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -8057,30 +13418,54 @@ static void lts_aga_fm2_n1_p8_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -8090,48 +13475,59 @@ static void lts_aga_fm2_n1_p8_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; - gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); } last_bpl_pix = pix2; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + gpix3 = get_genlock_transparency(dpf_lookup[pix3]); } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -8170,7 +13566,23 @@ static void lts_aga_fm2_n1_p8_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm2_ehb0_p8_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ishres_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8182,7 +13594,6 @@ static void lts_aga_fm2_dpf0_p8_ihires_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -8192,32 +13603,35 @@ static void lts_aga_fm2_dpf0_p8_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); } last_bpl_pix = pix0; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { copybpl8_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -8227,50 +13641,38 @@ static void lts_aga_fm2_dpf0_p8_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; - gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + dpix_val2 = decode_ham_pixel_aga(pix2); + gpix2 = get_genlock_transparency((pix2 >> 2) & 63); + } + last_bpl_pix = pix2; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + decode_ham_pixel_aga(pix3); } - last_bpl_pix = pix2; + last_bpl_pix = pix3; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { copybpl8_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; - } - } - loaded_pixs[2] = loaded_pix; + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -8309,7 +13711,7 @@ static void lts_aga_fm2_dpf0_p8_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm2_ham0_p8_ishres_dhires_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8321,7 +13723,6 @@ static void lts_aga_fm2_dpf1_p8_ihires_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -8331,35 +13732,38 @@ static void lts_aga_fm2_dpf1_p8_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); } last_bpl_pix = pix0; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + gpix1 = get_genlock_transparency((pix1 >> 2) & 63); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -8369,53 +13773,43 @@ static void lts_aga_fm2_dpf1_p8_ihires_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; - gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + dpix_val2 = decode_ham_pixel_aga(pix2); + gpix2 = get_genlock_transparency((pix2 >> 2) & 63); } last_bpl_pix = pix2; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = decode_ham_pixel_aga(pix3); + gpix3 = get_genlock_transparency((pix3 >> 2) & 63); } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -8454,15 +13848,7 @@ static void lts_aga_fm2_dpf1_p8_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p8_ihires_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p8_ihires_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm2_ham1_p8_ishres_dhires_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8474,7 +13860,6 @@ static void lts_aga_fm2_ham0_p8_ihires_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -8490,21 +13875,35 @@ static void lts_aga_fm2_ham0_p8_ihires_dhires_spr_genlock(void) last_bpl_pix = pix0; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); } + last_bpl_pix = pix1; } - loaded_pixs[0] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -8520,39 +13919,38 @@ static void lts_aga_fm2_ham0_p8_ihires_dhires_spr_genlock(void) last_bpl_pix = pix2; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + decode_ham_pixel_aga(pix3); } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -8591,7 +13989,7 @@ static void lts_aga_fm2_ham0_p8_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm2_ham1_p8_ishres_dhires_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8603,40 +14001,53 @@ static void lts_aga_fm2_ham1_p8_ihires_dhires_spr_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; - matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; if (!denise_blank_active) { - gpix0 = get_genlock_transparency_border(); - dpix_val0 = bordercolor; + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = loaded_pixs[0]; + clxdat |= bplcoltable[pix0]; + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + } + last_bpl_pix = pix0; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = loaded_pixs[0]; - clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); - gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + gpix1 = get_genlock_transparency((pix1 >> 2) & 63); } - last_bpl_pix = pix0; + last_bpl_pix = pix1; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv0 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv0 = svt; - } - } - loaded_pixs[0] = loaded_pix; + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; - matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -8652,42 +14063,43 @@ static void lts_aga_fm2_ham1_p8_ihires_dhires_spr_genlock(void) last_bpl_pix = pix2; } shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[0]) { + if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { copybpl8e_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 127) == bplcon1_shift_full_masked[1]) { + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { copybpl8o_64(); } loaded_pix = getbpl8_64(); - uae_u32 sv2 = 0; - if (denise_spr_nr_armeds) { - uae_u32 svt; - svt = denise_render_sprites_aga(denise_spr_add); - if (!denise_sprite_blank_active && !sprites_hidden) { - sv2 = svt; + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = decode_ham_pixel_aga(pix3); + gpix3 = get_genlock_transparency((pix3 >> 2) & 63); } + last_bpl_pix = pix3; } - loaded_pixs[2] = loaded_pix; + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { - if (sv0) { - uae_u32 spix0 = denise_render_sprites2(pix0, sv0); - if (spix0) { - dpix_val0 = denise_colors.acolors[spix0]; - gpix0 = get_genlock_transparency(spix0); - - } - } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; - if (sv2) { - uae_u32 spix2 = denise_render_sprites2(pix2, sv2); - if (spix2) { - dpix_val2 = denise_colors.acolors[spix2]; - gpix2 = get_genlock_transparency(spix2); - - } - } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -8726,15 +14138,23 @@ static void lts_aga_fm2_ham1_p8_ihires_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm2_kehb0_p8_ishres_dhires_genlock(void) { lts_null(); } -static void lts_aga_fm2_kehb1_p8_ihires_dhires_spr_genlock(void) +static void lts_aga_fm2_kehb0_p8_ishres_dhires_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm2_n0_p4_ishres_dhires_genlock(void) +static void lts_aga_fm2_kehb1_p8_ishres_dhires_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p8_ishres_dhires_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p4_ishres_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8746,6 +14166,7 @@ static void lts_aga_fm2_n0_p4_ishres_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -8765,9 +14186,18 @@ static void lts_aga_fm2_n0_p4_ishres_dhires_genlock(void) copybpl4_64(); } loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; shiftbpl4_64(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -8787,12 +14217,36 @@ static void lts_aga_fm2_n0_p4_ishres_dhires_genlock(void) copybpl4_64(); } loaded_pix = getbpl4_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; shiftbpl4_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -8831,7 +14285,7 @@ static void lts_aga_fm2_n0_p4_ishres_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_n1_p4_ishres_dhires_genlock(void) +static void lts_aga_fm2_n0_p4_ishres_dhires_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8843,6 +14297,7 @@ static void lts_aga_fm2_n1_p4_ishres_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -8859,15 +14314,40 @@ static void lts_aga_fm2_n1_p4_ishres_dhires_genlock(void) } shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + copybpl4_64(); } loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -8884,18 +14364,62 @@ static void lts_aga_fm2_n1_p4_ishres_dhires_genlock(void) } shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + copybpl4_64(); } loaded_pix = getbpl4_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + gpix3 = get_genlock_transparency(pix3 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix3; + } shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -8934,7 +14458,7 @@ static void lts_aga_fm2_n1_p4_ishres_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p4_ishres_dhires_genlock(void) +static void lts_aga_fm2_n1_p4_ishres_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -8946,6 +14470,7 @@ static void lts_aga_fm2_dpf0_p4_ishres_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -8955,24 +14480,31 @@ static void lts_aga_fm2_dpf0_p4_ishres_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); } loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; shiftbpl4_64(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -8982,27 +14514,49 @@ static void lts_aga_fm2_dpf0_p4_ishres_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; - gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix2; } shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); } loaded_pix = getbpl4_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; shiftbpl4_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -9041,7 +14595,7 @@ static void lts_aga_fm2_dpf0_p4_ishres_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p4_ishres_dhires_genlock(void) +static void lts_aga_fm2_n1_p4_ishres_dhires_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9053,6 +14607,7 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -9062,13 +14617,8 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } @@ -9080,9 +14630,40 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires_genlock(void) copybpl4o_64(); } loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -9092,13 +14673,8 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; - gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix2; } @@ -9110,12 +14686,62 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires_genlock(void) copybpl4o_64(); } loaded_pix = getbpl4_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + gpix3 = get_genlock_transparency(pix3 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix3; + } shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -9154,31 +14780,7 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p4_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p4_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p4_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p4_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p4_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p4_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p8_ishres_dhires_genlock(void) +static void lts_aga_fm2_dpf0_p4_ishres_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9190,6 +14792,7 @@ static void lts_aga_fm2_n0_p8_ishres_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -9199,19 +14802,33 @@ static void lts_aga_fm2_n0_p8_ishres_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; - shiftbpl8_64(); + shiftbpl4_64(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -9221,22 +14838,51 @@ static void lts_aga_fm2_n0_p8_ishres_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; - gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); } last_bpl_pix = pix2; } - shiftbpl8_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; - shiftbpl8_64(); + shiftbpl4_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -9275,7 +14921,7 @@ static void lts_aga_fm2_n0_p8_ishres_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_n1_p8_ishres_dhires_genlock(void) +static void lts_aga_fm2_dpf0_p4_ishres_dhires_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9287,6 +14933,7 @@ static void lts_aga_fm2_n1_p8_ishres_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -9296,22 +14943,57 @@ static void lts_aga_fm2_n1_p8_ishres_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl4_64(); } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; - shiftbpl8_64(); + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -9321,25 +15003,79 @@ static void lts_aga_fm2_n1_p8_ishres_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; - gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); } last_bpl_pix = pix2; } - shiftbpl8_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl4_64(); } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + loaded_pix = getbpl4_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; - shiftbpl8_64(); + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + gpix3 = get_genlock_transparency(dpf_lookup[pix3]); + } + last_bpl_pix = pix3; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -9378,7 +15114,7 @@ static void lts_aga_fm2_n1_p8_ishres_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p8_ishres_dhires_genlock(void) +static void lts_aga_fm2_dpf1_p4_ishres_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9390,6 +15126,7 @@ static void lts_aga_fm2_dpf0_p8_ishres_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -9409,14 +15146,26 @@ static void lts_aga_fm2_dpf0_p8_ishres_dhires_genlock(void) } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; - shiftbpl8_64(); + shiftbpl4_64(); internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -9436,17 +15185,44 @@ static void lts_aga_fm2_dpf0_p8_ishres_dhires_genlock(void) } last_bpl_pix = pix2; } - shiftbpl8_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; - shiftbpl8_64(); + shiftbpl4_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -9485,7 +15261,7 @@ static void lts_aga_fm2_dpf0_p8_ishres_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p8_ishres_dhires_genlock(void) +static void lts_aga_fm2_dpf1_p4_ishres_dhires_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9497,6 +15273,7 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -9516,17 +15293,53 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires_genlock(void) } last_bpl_pix = pix0; } - shiftbpl8_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl4e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } } - loaded_pix = getbpl8_64(); loaded_pixs[0] = loaded_pix; - shiftbpl8_64(); + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -9546,20 +15359,75 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires_genlock(void) } last_bpl_pix = pix2; } - shiftbpl8_64(); + shiftbpl4_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); + copybpl4e_64(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } } - loaded_pix = getbpl8_64(); loaded_pixs[2] = loaded_pix; - shiftbpl8_64(); + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + gpix3 = get_genlock_transparency(dpf_lookup[pix3]); + } + last_bpl_pix = pix3; + } + shiftbpl4_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl4e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl4o_64(); + } + loaded_pix = getbpl4_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -9598,15 +15466,55 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p8_ishres_dhires_genlock(void) +static void lts_aga_fm2_ehb0_p4_ishres_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ishres_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ishres_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham1_p4_ishres_dhires_spr_genlock(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p8_ishres_dhires_genlock(void) +static void lts_aga_fm2_ham1_p4_ishres_dhires_spr_filtered_genlock(void) { lts_null(); } -static void lts_aga_fm2_ham0_p8_ishres_dhires_genlock(void) +static void lts_aga_fm2_kehb0_p4_ishres_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb0_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ishres_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_kehb1_p4_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_n0_p8_ishres_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9618,6 +15526,7 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -9627,8 +15536,8 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); - gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } @@ -9637,25 +15546,18 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires_genlock(void) copybpl8_64(); } loaded_pix = getbpl8_64(); - loaded_pixs[0] = loaded_pix; - uae_u8 pix1 = 0; - uae_u8 gpix1 = 0xff; - uae_u32 dpix_val1 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val1 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; } - last_bpl_pix = pix1; } + loaded_pixs[0] = loaded_pix; shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); - } - loaded_pix = getbpl8_64(); - loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -9665,8 +15567,8 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); - gpix2 = get_genlock_transparency((pix2 >> 2) & 63); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix2; } @@ -9675,28 +15577,36 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires_genlock(void) copybpl8_64(); } loaded_pix = getbpl8_64(); - loaded_pixs[2] = loaded_pix; - uae_u8 pix3 = 0; - uae_u8 gpix3 = 0xff; - uae_u32 dpix_val3 = BLANK_COLOR; - if (!denise_blank_active) { - dpix_val3 = bordercolor; - if (denise_hdiw && bpl1dat_trigger) { - pix3 = loaded_pixs[3]; - decode_ham_pixel_aga(pix3); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; } - last_bpl_pix = pix3; } + loaded_pixs[2] = loaded_pix; shiftbpl8_64(); - if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); - } - loaded_pix = getbpl8_64(); - loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + } + } dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -9735,7 +15645,7 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p8_ishres_dhires_genlock(void) +static void lts_aga_fm2_n0_p8_ishres_dhires_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9747,6 +15657,7 @@ static void lts_aga_fm2_ham1_p8_ishres_dhires_genlock(void) int cnt = denise_hcounter << 2; int cnt_next = denise_hcounter_next << 2; if (checkhorizontal1_aga(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites_aga(cnt + 0); uae_u8 pix0 = 0; uae_u8 gpix0 = 0xff; uae_u32 dpix_val0 = BLANK_COLOR; @@ -9756,41 +15667,47 @@ static void lts_aga_fm2_ham1_p8_ishres_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = decode_ham_pixel_aga(pix0); - gpix0 = get_genlock_transparency((pix0 >> 2) & 63); + dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; + gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix0; } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl8_64(); } loaded_pix = getbpl8_64(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } loaded_pixs[0] = loaded_pix; uae_u8 pix1 = 0; uae_u8 gpix1 = 0xff; uae_u32 dpix_val1 = BLANK_COLOR; if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix1; } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl8_64(); } loaded_pix = getbpl8_64(); loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; + matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; uae_u8 gpix2 = 0xff; uae_u32 dpix_val2 = BLANK_COLOR; @@ -9800,44 +15717,69 @@ static void lts_aga_fm2_ham1_p8_ishres_dhires_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = decode_ham_pixel_aga(pix2); - gpix2 = get_genlock_transparency((pix2 >> 2) & 63); + dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; + gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix2; } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl8_64(); } loaded_pix = getbpl8_64(); + uae_u32 sv2 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_aga(denise_spr_add); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv2 = svt; + } + } loaded_pixs[2] = loaded_pix; uae_u8 pix3 = 0; uae_u8 gpix3 = 0xff; uae_u32 dpix_val3 = BLANK_COLOR; if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); dpix_val3 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix3 = loaded_pixs[3]; - decode_ham_pixel_aga(pix3); + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + gpix3 = get_genlock_transparency(pix3 ^ bplcon4_denise_xor_val); } last_bpl_pix = pix3; } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl8_64(); } loaded_pix = getbpl8_64(); loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; + if (sv2) { + uae_u32 spix2 = denise_render_sprites2(pix2, sv2); + if (spix2) { + dpix_val2 = denise_colors.acolors[spix2]; + gpix2 = get_genlock_transparency(spix2); + + dpix_val3 = dpix_val2; + } + } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -9876,15 +15818,7 @@ static void lts_aga_fm2_ham1_p8_ishres_dhires_genlock(void) denise_cck++; } } -static void lts_aga_fm2_kehb0_p8_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p8_ishres_dhires_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p4_ishres_dhires_spr_genlock(void) +static void lts_aga_fm2_n1_p8_ishres_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -9911,11 +15845,14 @@ static void lts_aga_fm2_n0_p4_ishres_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl8e_64(); } - loaded_pix = getbpl4_64(); + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -9925,7 +15862,7 @@ static void lts_aga_fm2_n0_p4_ishres_dhires_spr_genlock(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + shiftbpl8_64(); internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -9942,11 +15879,14 @@ static void lts_aga_fm2_n0_p4_ishres_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - shiftbpl4_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl8e_64(); } - loaded_pix = getbpl4_64(); + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -9956,7 +15896,7 @@ static void lts_aga_fm2_n0_p4_ishres_dhires_spr_genlock(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl4_64(); + shiftbpl8_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -10015,7 +15955,7 @@ static void lts_aga_fm2_n0_p4_ishres_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_n1_p4_ishres_dhires_spr_genlock(void) +static void lts_aga_fm2_n1_p8_ishres_dhires_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10042,14 +15982,14 @@ static void lts_aga_fm2_n1_p4_ishres_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); + copybpl8e_64(); } if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + copybpl8o_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -10059,7 +15999,29 @@ static void lts_aga_fm2_n1_p4_ishres_dhires_spr_genlock(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1 ^ bplcon4_denise_xor_val]; + gpix1 = get_genlock_transparency(pix1 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -10076,14 +16038,14 @@ static void lts_aga_fm2_n1_p4_ishres_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - shiftbpl4_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); + copybpl8e_64(); } if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + copybpl8o_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -10092,8 +16054,30 @@ static void lts_aga_fm2_n1_p4_ishres_dhires_spr_genlock(void) sv2 = svt; } } - loaded_pixs[2] = loaded_pix; - shiftbpl4_64(); + loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = denise_colors.acolors[pix3 ^ bplcon4_denise_xor_val]; + gpix3 = get_genlock_transparency(pix3 ^ bplcon4_denise_xor_val); + } + last_bpl_pix = pix3; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -10102,8 +16086,10 @@ static void lts_aga_fm2_n1_p4_ishres_dhires_spr_genlock(void) dpix_val0 = denise_colors.acolors[spix0]; gpix0 = get_genlock_transparency(spix0); + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; if (sv2) { @@ -10112,8 +16098,10 @@ static void lts_aga_fm2_n1_p4_ishres_dhires_spr_genlock(void) dpix_val2 = denise_colors.acolors[spix2]; gpix2 = get_genlock_transparency(spix2); + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -10152,7 +16140,7 @@ static void lts_aga_fm2_n1_p4_ishres_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p4_ishres_dhires_spr_genlock(void) +static void lts_aga_fm2_dpf0_p8_ishres_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10184,11 +16172,11 @@ static void lts_aga_fm2_dpf0_p4_ishres_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl8_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -10198,7 +16186,7 @@ static void lts_aga_fm2_dpf0_p4_ishres_dhires_spr_genlock(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + shiftbpl8_64(); internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -10220,11 +16208,11 @@ static void lts_aga_fm2_dpf0_p4_ishres_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - shiftbpl4_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4_64(); + copybpl8_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -10234,7 +16222,7 @@ static void lts_aga_fm2_dpf0_p4_ishres_dhires_spr_genlock(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl4_64(); + shiftbpl8_64(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -10293,7 +16281,7 @@ static void lts_aga_fm2_dpf0_p4_ishres_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p4_ishres_dhires_spr_genlock(void) +static void lts_aga_fm2_dpf0_p8_ishres_dhires_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10325,14 +16313,11 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires_spr_genlock(void) } last_bpl_pix = pix0; } - shiftbpl4_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + copybpl8_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -10342,7 +16327,31 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires_spr_genlock(void) } } loaded_pixs[0] = loaded_pix; - shiftbpl4_64(); + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -10364,14 +16373,11 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires_spr_genlock(void) } last_bpl_pix = pix2; } - shiftbpl4_64(); + shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl4e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl4o_64(); + copybpl8_64(); } - loaded_pix = getbpl4_64(); + loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -10381,7 +16387,31 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires_spr_genlock(void) } } loaded_pixs[2] = loaded_pix; - shiftbpl4_64(); + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + gpix3 = get_genlock_transparency(dpf_lookup[pix3]); + } + last_bpl_pix = pix3; + } + shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -10390,8 +16420,10 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires_spr_genlock(void) dpix_val0 = denise_colors.acolors[spix0]; gpix0 = get_genlock_transparency(spix0); + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; if (sv2) { @@ -10400,8 +16432,10 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires_spr_genlock(void) dpix_val2 = denise_colors.acolors[spix2]; gpix2 = get_genlock_transparency(spix2); + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -10440,31 +16474,7 @@ static void lts_aga_fm2_dpf1_p4_ishres_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p4_ishres_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p4_ishres_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p4_ishres_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham1_p4_ishres_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb0_p4_ishres_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_kehb1_p4_ishres_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_n0_p8_ishres_dhires_spr_genlock(void) +static void lts_aga_fm2_dpf1_p8_ishres_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10486,14 +16496,22 @@ static void lts_aga_fm2_n0_p8_ishres_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; @@ -10517,14 +16535,22 @@ static void lts_aga_fm2_n0_p8_ishres_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; - gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); } last_bpl_pix = pix2; } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; @@ -10595,7 +16621,7 @@ static void lts_aga_fm2_n0_p8_ishres_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_n1_p8_ishres_dhires_spr_genlock(void) +static void lts_aga_fm2_dpf1_p8_ishres_dhires_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10617,8 +16643,13 @@ static void lts_aga_fm2_n1_p8_ishres_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0 ^ bplcon4_denise_xor_val]; - gpix0 = get_genlock_transparency(pix0 ^ bplcon4_denise_xor_val); + uae_u8 val0 = dpf_lookup[pix0]; + if (dpf_lookup_no[pix0]) { + val0 += dblpfofs[bpldualpf2of]; + } + val0 ^= bplcon4_denise_xor_val; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } @@ -10639,7 +16670,34 @@ static void lts_aga_fm2_n1_p8_ishres_dhires_spr_genlock(void) } } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + if (dpf_lookup_no[pix1]) { + val1 += dblpfofs[bpldualpf2of]; + } + val1 ^= bplcon4_denise_xor_val; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -10651,8 +16709,13 @@ static void lts_aga_fm2_n1_p8_ishres_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - dpix_val2 = denise_colors.acolors[pix2 ^ bplcon4_denise_xor_val]; - gpix2 = get_genlock_transparency(pix2 ^ bplcon4_denise_xor_val); + uae_u8 val2 = dpf_lookup[pix2]; + if (dpf_lookup_no[pix2]) { + val2 += dblpfofs[bpldualpf2of]; + } + val2 ^= bplcon4_denise_xor_val; + dpix_val2 = denise_colors.acolors[val2]; + gpix2 = get_genlock_transparency(dpf_lookup[pix2]); } last_bpl_pix = pix2; } @@ -10673,7 +16736,34 @@ static void lts_aga_fm2_n1_p8_ishres_dhires_spr_genlock(void) } } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + uae_u8 val3 = dpf_lookup[pix3]; + if (dpf_lookup_no[pix3]) { + val3 += dblpfofs[bpldualpf2of]; + } + val3 ^= bplcon4_denise_xor_val; + dpix_val3 = denise_colors.acolors[val3]; + gpix3 = get_genlock_transparency(dpf_lookup[pix3]); + } + last_bpl_pix = pix3; + } shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -10682,8 +16772,10 @@ static void lts_aga_fm2_n1_p8_ishres_dhires_spr_genlock(void) dpix_val0 = denise_colors.acolors[spix0]; gpix0 = get_genlock_transparency(spix0); + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; if (sv2) { @@ -10692,8 +16784,10 @@ static void lts_aga_fm2_n1_p8_ishres_dhires_spr_genlock(void) dpix_val2 = denise_colors.acolors[spix2]; gpix2 = get_genlock_transparency(spix2); + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -10732,7 +16826,23 @@ static void lts_aga_fm2_n1_p8_ishres_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf0_p8_ishres_dhires_spr_genlock(void) +static void lts_aga_fm2_ehb0_p8_ishres_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb0_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ishres_dhires_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ham0_p8_ishres_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10754,13 +16864,8 @@ static void lts_aga_fm2_dpf0_p8_ishres_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); } last_bpl_pix = pix0; } @@ -10777,8 +16882,24 @@ static void lts_aga_fm2_dpf0_p8_ishres_dhires_spr_genlock(void) sv0 = svt; } } - loaded_pixs[0] = loaded_pix; + loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + decode_ham_pixel_aga(pix1); + } + last_bpl_pix = pix1; + } shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -10790,13 +16911,8 @@ static void lts_aga_fm2_dpf0_p8_ishres_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; - gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + dpix_val2 = decode_ham_pixel_aga(pix2); + gpix2 = get_genlock_transparency((pix2 >> 2) & 63); } last_bpl_pix = pix2; } @@ -10814,7 +16930,23 @@ static void lts_aga_fm2_dpf0_p8_ishres_dhires_spr_genlock(void) } } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + decode_ham_pixel_aga(pix3); + } + last_bpl_pix = pix3; + } shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -10873,7 +17005,7 @@ static void lts_aga_fm2_dpf0_p8_ishres_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_dpf1_p8_ishres_dhires_spr_genlock(void) +static void lts_aga_fm2_ham0_p8_ishres_dhires_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -10895,22 +17027,14 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = loaded_pixs[0]; clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - if (dpf_lookup_no[pix0]) { - val0 += dblpfofs[bpldualpf2of]; - } - val0 ^= bplcon4_denise_xor_val; - dpix_val0 = denise_colors.acolors[val0]; - gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + dpix_val0 = decode_ham_pixel_aga(pix0); + gpix0 = get_genlock_transparency((pix0 >> 2) & 63); } last_bpl_pix = pix0; } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl8_64(); } loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; @@ -10922,7 +17046,26 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires_spr_genlock(void) } } loaded_pixs[0] = loaded_pix; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = loaded_pixs[1]; + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + gpix1 = get_genlock_transparency((pix1 >> 2) & 63); + } + last_bpl_pix = pix1; + } shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[1] = loaded_pix; internal_pixel_cnt += 2; matchsprites_aga(cnt + 2); uae_u8 pix2 = 0; @@ -10934,22 +17077,14 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix2 = loaded_pixs[2]; clxdat |= bplcoltable[pix2]; - uae_u8 val2 = dpf_lookup[pix2]; - if (dpf_lookup_no[pix2]) { - val2 += dblpfofs[bpldualpf2of]; - } - val2 ^= bplcon4_denise_xor_val; - dpix_val2 = denise_colors.acolors[val2]; - gpix2 = get_genlock_transparency(dpf_lookup[pix2]); + dpix_val2 = decode_ham_pixel_aga(pix2); + gpix2 = get_genlock_transparency((pix2 >> 2) & 63); } last_bpl_pix = pix2; } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8e_64(); - } - if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { - copybpl8o_64(); + copybpl8_64(); } loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; @@ -10961,7 +17096,26 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires_spr_genlock(void) } } loaded_pixs[2] = loaded_pix; + uae_u8 pix3 = 0; + uae_u8 gpix3 = 0xff; + uae_u32 dpix_val3 = BLANK_COLOR; + if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); + dpix_val3 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix3 = loaded_pixs[3]; + clxdat |= bplcoltable[pix3]; + dpix_val3 = decode_ham_pixel_aga(pix3); + gpix3 = get_genlock_transparency((pix3 >> 2) & 63); + } + last_bpl_pix = pix3; + } shiftbpl8_64(); + if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { + copybpl8_64(); + } + loaded_pix = getbpl8_64(); + loaded_pixs[3] = loaded_pix; internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -10970,8 +17124,10 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires_spr_genlock(void) dpix_val0 = denise_colors.acolors[spix0]; gpix0 = get_genlock_transparency(spix0); + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; if (sv2) { @@ -10980,8 +17136,10 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires_spr_genlock(void) dpix_val2 = denise_colors.acolors[spix2]; gpix2 = get_genlock_transparency(spix2); + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -11020,15 +17178,7 @@ static void lts_aga_fm2_dpf1_p8_ishres_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ehb0_p8_ishres_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ehb1_p8_ishres_dhires_spr_genlock(void) -{ - lts_null(); -} -static void lts_aga_fm2_ham0_p8_ishres_dhires_spr_genlock(void) +static void lts_aga_fm2_ham1_p8_ishres_dhires_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11057,7 +17207,10 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires_spr_genlock(void) } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 0) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } loaded_pix = getbpl8_64(); uae_u32 sv0 = 0; @@ -11082,7 +17235,10 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires_spr_genlock(void) } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 1) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } loaded_pix = getbpl8_64(); loaded_pixs[1] = loaded_pix; @@ -11104,7 +17260,10 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires_spr_genlock(void) } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 2) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } loaded_pix = getbpl8_64(); uae_u32 sv2 = 0; @@ -11129,7 +17288,10 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires_spr_genlock(void) } shiftbpl8_64(); if (bpldat_copy[0] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[0]) { - copybpl8_64(); + copybpl8e_64(); + } + if (bpldat_copy[1] && ((cnt | 3) & 63) == bplcon1_shift_full_masked[1]) { + copybpl8o_64(); } loaded_pix = getbpl8_64(); loaded_pixs[3] = loaded_pix; @@ -11191,7 +17353,7 @@ static void lts_aga_fm2_ham0_p8_ishres_dhires_spr_genlock(void) denise_cck++; } } -static void lts_aga_fm2_ham1_p8_ishres_dhires_spr_genlock(void) +static void lts_aga_fm2_ham1_p8_ishres_dhires_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -11239,10 +17401,13 @@ static void lts_aga_fm2_ham1_p8_ishres_dhires_spr_genlock(void) uae_u8 gpix1 = 0xff; uae_u32 dpix_val1 = BLANK_COLOR; if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix1 = loaded_pixs[1]; - decode_ham_pixel_aga(pix1); + clxdat |= bplcoltable[pix1]; + dpix_val1 = decode_ham_pixel_aga(pix1); + gpix1 = get_genlock_transparency((pix1 >> 2) & 63); } last_bpl_pix = pix1; } @@ -11292,10 +17457,13 @@ static void lts_aga_fm2_ham1_p8_ishres_dhires_spr_genlock(void) uae_u8 gpix3 = 0xff; uae_u32 dpix_val3 = BLANK_COLOR; if (!denise_blank_active) { + gpix3 = get_genlock_transparency_border(); dpix_val3 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { pix3 = loaded_pixs[3]; - decode_ham_pixel_aga(pix3); + clxdat |= bplcoltable[pix3]; + dpix_val3 = decode_ham_pixel_aga(pix3); + gpix3 = get_genlock_transparency((pix3 >> 2) & 63); } last_bpl_pix = pix3; } @@ -11316,8 +17484,10 @@ static void lts_aga_fm2_ham1_p8_ishres_dhires_spr_genlock(void) dpix_val0 = denise_colors.acolors[spix0]; gpix0 = get_genlock_transparency(spix0); + dpix_val1 = dpix_val0; } } + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; if (sv2) { @@ -11326,8 +17496,10 @@ static void lts_aga_fm2_ham1_p8_ishres_dhires_spr_genlock(void) dpix_val2 = denise_colors.acolors[spix2]; gpix2 = get_genlock_transparency(spix2); + dpix_val3 = dpix_val2; } } + dpix_val2 = filter_pixel(dpix_val2, dpix_val3); dtbuf[h][2] = dpix_val2; dtgbuf[h][2] = gpix2; uae_u32 t0 = dtbuf[h ^ lol][0]; @@ -11370,10 +17542,18 @@ static void lts_aga_fm2_kehb0_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p8_ishres_dhires_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p8_ishres_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p4_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -11557,6 +17737,10 @@ static void lts_aga_fm2_n0_p4_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n0_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p4_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -11784,6 +17968,10 @@ static void lts_aga_fm2_n1_p4_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n1_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p4_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -11987,6 +18175,10 @@ static void lts_aga_fm2_dpf0_p4_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p4_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -12234,30 +18426,58 @@ static void lts_aga_fm2_dpf1_p4_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p4_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p4_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p4_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_ham0_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p4_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_ham1_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p4_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p4_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p4_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p8_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -12441,6 +18661,10 @@ static void lts_aga_fm2_n0_p8_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n0_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p8_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -12668,6 +18892,10 @@ static void lts_aga_fm2_n1_p8_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n1_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p8_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -12871,6 +19099,10 @@ static void lts_aga_fm2_dpf0_p8_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p8_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -13118,14 +19350,26 @@ static void lts_aga_fm2_dpf1_p8_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p8_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p8_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p8_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -13309,6 +19553,10 @@ static void lts_aga_fm2_ham0_p8_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p8_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -13536,14 +19784,26 @@ static void lts_aga_fm2_ham1_p8_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p8_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p8_ilores_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p8_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p4_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -13795,6 +20055,10 @@ static void lts_aga_fm2_n0_p4_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n0_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p4_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -14090,6 +20354,10 @@ static void lts_aga_fm2_n1_p4_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n1_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p4_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -14361,6 +20629,10 @@ static void lts_aga_fm2_dpf0_p4_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p4_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -14676,30 +20948,58 @@ static void lts_aga_fm2_dpf1_p4_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p4_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p4_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p4_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ham0_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p4_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ham1_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p4_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p4_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p4_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p8_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -14951,6 +21251,10 @@ static void lts_aga_fm2_n0_p8_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n0_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p8_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -15246,6 +21550,10 @@ static void lts_aga_fm2_n1_p8_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n1_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p8_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -15517,6 +21825,10 @@ static void lts_aga_fm2_dpf0_p8_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p8_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -15832,11 +22144,23 @@ static void lts_aga_fm2_dpf1_p8_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p8_ilores_dshres_spr_genlock(void) { lts_null(); } -static void lts_aga_fm2_ehb1_p8_ilores_dshres_spr_genlock(void) +static void lts_aga_fm2_ehb0_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ilores_dshres_spr_genlock(void) +{ + lts_null(); +} +static void lts_aga_fm2_ehb1_p8_ilores_dshres_spr_filtered_genlock(void) { lts_null(); } @@ -16091,6 +22415,10 @@ static void lts_aga_fm2_ham0_p8_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p8_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -16386,14 +22714,26 @@ static void lts_aga_fm2_ham1_p8_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p8_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p8_ilores_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p8_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p4_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -16577,6 +22917,10 @@ static void lts_aga_fm2_n0_p4_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p4_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -16804,6 +23148,10 @@ static void lts_aga_fm2_n1_p4_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p4_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -17007,6 +23355,10 @@ static void lts_aga_fm2_dpf0_p4_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p4_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -17254,30 +23606,58 @@ static void lts_aga_fm2_dpf1_p4_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_ham0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_ham1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p8_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -17461,6 +23841,10 @@ static void lts_aga_fm2_n0_p8_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n0_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p8_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -17688,6 +24072,10 @@ static void lts_aga_fm2_n1_p8_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n1_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p8_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -17891,6 +24279,10 @@ static void lts_aga_fm2_dpf0_p8_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p8_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -18138,14 +24530,26 @@ static void lts_aga_fm2_dpf1_p8_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p8_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p8_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p8_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -18329,6 +24733,10 @@ static void lts_aga_fm2_ham0_p8_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p8_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -18556,14 +24964,26 @@ static void lts_aga_fm2_ham1_p8_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p8_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p8_ihires_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p8_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p4_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -18815,6 +25235,10 @@ static void lts_aga_fm2_n0_p4_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p4_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -19110,6 +25534,10 @@ static void lts_aga_fm2_n1_p4_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p4_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -19381,6 +25809,10 @@ static void lts_aga_fm2_dpf0_p4_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p4_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -19696,30 +26128,58 @@ static void lts_aga_fm2_dpf1_p4_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ham0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ham1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p8_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -19971,6 +26431,10 @@ static void lts_aga_fm2_n0_p8_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n0_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p8_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -20266,6 +26730,10 @@ static void lts_aga_fm2_n1_p8_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n1_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p8_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -20537,6 +27005,10 @@ static void lts_aga_fm2_dpf0_p8_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p8_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -20852,14 +27324,26 @@ static void lts_aga_fm2_dpf1_p8_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p8_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p8_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p8_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -21111,6 +27595,10 @@ static void lts_aga_fm2_ham0_p8_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p8_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -21406,14 +27894,26 @@ static void lts_aga_fm2_ham1_p8_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p8_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p8_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p8_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p4_ishres_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -21573,6 +28073,10 @@ static void lts_aga_fm2_n0_p4_ishres_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n0_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p4_ishres_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -21744,6 +28248,10 @@ static void lts_aga_fm2_n1_p4_ishres_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n1_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p4_ishres_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -21923,6 +28431,10 @@ static void lts_aga_fm2_dpf0_p4_ishres_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p4_ishres_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -22114,30 +28626,58 @@ static void lts_aga_fm2_dpf1_p4_ishres_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_ham0_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_ham1_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p4_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p4_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p8_ishres_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -22297,6 +28837,10 @@ static void lts_aga_fm2_n0_p8_ishres_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n0_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p8_ishres_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -22468,6 +29012,10 @@ static void lts_aga_fm2_n1_p8_ishres_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n1_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p8_ishres_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -22647,6 +29195,10 @@ static void lts_aga_fm2_dpf0_p8_ishres_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p8_ishres_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -22838,14 +29390,26 @@ static void lts_aga_fm2_dpf1_p8_ishres_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p8_ishres_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -23005,6 +29569,10 @@ static void lts_aga_fm2_ham0_p8_ishres_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p8_ishres_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -23176,14 +29744,26 @@ static void lts_aga_fm2_ham1_p8_ishres_dshres_genlock(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p8_ishres_dshres_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p8_ishres_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p4_ishres_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -23411,6 +29991,10 @@ static void lts_aga_fm2_n0_p4_ishres_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n0_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p4_ishres_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -23650,6 +30234,10 @@ static void lts_aga_fm2_n1_p4_ishres_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n1_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p4_ishres_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -23897,6 +30485,10 @@ static void lts_aga_fm2_dpf0_p4_ishres_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p4_ishres_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -24156,30 +30748,58 @@ static void lts_aga_fm2_dpf1_p4_ishres_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ham0_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ham1_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p4_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p4_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n0_p8_ishres_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -24407,6 +31027,10 @@ static void lts_aga_fm2_n0_p8_ishres_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n0_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_n1_p8_ishres_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -24646,6 +31270,10 @@ static void lts_aga_fm2_n1_p8_ishres_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_n1_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf0_p8_ishres_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -24893,6 +31521,10 @@ static void lts_aga_fm2_dpf0_p8_ishres_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf0_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_dpf1_p8_ishres_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -25152,14 +31784,26 @@ static void lts_aga_fm2_dpf1_p8_ishres_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_dpf1_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb0_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb0_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ehb1_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_ehb1_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham0_p8_ishres_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -25387,6 +32031,10 @@ static void lts_aga_fm2_ham0_p8_ishres_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_ham0_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_ham1_p8_ishres_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -25626,14 +32274,26 @@ static void lts_aga_fm2_ham1_p8_ishres_dshres_spr_genlock(void) denise_cck++; } } +static void lts_aga_fm2_ham1_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb0_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb0_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_aga_fm2_kehb1_p8_ishres_dshres_spr_genlock(void) { lts_null(); } +static void lts_aga_fm2_kehb1_p8_ishres_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static LINETOSRC_FUNC linetoscr_aga_genlock_funcs[] = { lts_aga_fm0_n0_p4_ilores_dlores_genlock, lts_aga_fm0_n1_p4_ilores_dlores_genlock, @@ -26717,3 +33377,1086 @@ static LINETOSRC_FUNC linetoscr_aga_genlock_funcs[] = { lts_aga_fm2_kehb1_p8_ishres_dshres_spr_genlock, NULL }; +static LINETOSRC_FUNC linetoscr_aga_genlock_funcs_filtered[] = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_fm0_n0_p4_ihires_dlores_filtered_genlock, + lts_aga_fm0_n1_p4_ihires_dlores_filtered_genlock, + lts_aga_fm0_dpf0_p4_ihires_dlores_filtered_genlock, + lts_aga_fm0_dpf1_p4_ihires_dlores_filtered_genlock, + lts_aga_fm0_ehb0_p4_ihires_dlores_filtered_genlock, + lts_aga_fm0_ehb1_p4_ihires_dlores_filtered_genlock, + lts_aga_fm0_ham0_p4_ihires_dlores_filtered_genlock, + lts_aga_fm0_ham1_p4_ihires_dlores_filtered_genlock, + lts_aga_fm0_kehb0_p4_ihires_dlores_filtered_genlock, + lts_aga_fm0_kehb1_p4_ihires_dlores_filtered_genlock, + lts_aga_fm0_n0_p8_ihires_dlores_filtered_genlock, + lts_aga_fm0_n1_p8_ihires_dlores_filtered_genlock, + lts_aga_fm0_dpf0_p8_ihires_dlores_filtered_genlock, + lts_aga_fm0_dpf1_p8_ihires_dlores_filtered_genlock, + lts_aga_fm0_ehb0_p8_ihires_dlores_filtered_genlock, + lts_aga_fm0_ehb1_p8_ihires_dlores_filtered_genlock, + lts_aga_fm0_ham0_p8_ihires_dlores_filtered_genlock, + lts_aga_fm0_ham1_p8_ihires_dlores_filtered_genlock, + lts_aga_fm0_kehb0_p8_ihires_dlores_filtered_genlock, + lts_aga_fm0_kehb1_p8_ihires_dlores_filtered_genlock, + lts_aga_fm0_n0_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_n1_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_dpf0_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_dpf1_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_ehb0_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_ehb1_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_ham0_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_ham1_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_kehb0_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_kehb1_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_n0_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_n1_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_dpf0_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_dpf1_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_ehb0_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_ehb1_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_ham0_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_ham1_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_kehb0_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_kehb1_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm0_n0_p4_ishres_dlores_filtered_genlock, + lts_aga_fm0_n1_p4_ishres_dlores_filtered_genlock, + lts_aga_fm0_dpf0_p4_ishres_dlores_filtered_genlock, + lts_aga_fm0_dpf1_p4_ishres_dlores_filtered_genlock, + lts_aga_fm0_ehb0_p4_ishres_dlores_filtered_genlock, + lts_aga_fm0_ehb1_p4_ishres_dlores_filtered_genlock, + lts_aga_fm0_ham0_p4_ishres_dlores_filtered_genlock, + lts_aga_fm0_ham1_p4_ishres_dlores_filtered_genlock, + lts_aga_fm0_kehb0_p4_ishres_dlores_filtered_genlock, + lts_aga_fm0_kehb1_p4_ishres_dlores_filtered_genlock, + lts_aga_fm0_n0_p8_ishres_dlores_filtered_genlock, + lts_aga_fm0_n1_p8_ishres_dlores_filtered_genlock, + lts_aga_fm0_dpf0_p8_ishres_dlores_filtered_genlock, + lts_aga_fm0_dpf1_p8_ishres_dlores_filtered_genlock, + lts_aga_fm0_ehb0_p8_ishres_dlores_filtered_genlock, + lts_aga_fm0_ehb1_p8_ishres_dlores_filtered_genlock, + lts_aga_fm0_ham0_p8_ishres_dlores_filtered_genlock, + lts_aga_fm0_ham1_p8_ishres_dlores_filtered_genlock, + lts_aga_fm0_kehb0_p8_ishres_dlores_filtered_genlock, + lts_aga_fm0_kehb1_p8_ishres_dlores_filtered_genlock, + lts_aga_fm0_n0_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_n1_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_dpf0_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_dpf1_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_ehb0_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_ehb1_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_ham0_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_ham1_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_kehb0_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_kehb1_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_n0_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_n1_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_dpf0_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_dpf1_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_ehb0_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_ehb1_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_ham0_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_ham1_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_kehb0_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm0_kehb1_p8_ishres_dlores_spr_filtered_genlock, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_fm0_n0_p4_ishres_dhires_filtered_genlock, + lts_aga_fm0_n1_p4_ishres_dhires_filtered_genlock, + lts_aga_fm0_dpf0_p4_ishres_dhires_filtered_genlock, + lts_aga_fm0_dpf1_p4_ishres_dhires_filtered_genlock, + lts_aga_fm0_ehb0_p4_ishres_dhires_filtered_genlock, + lts_aga_fm0_ehb1_p4_ishres_dhires_filtered_genlock, + lts_aga_fm0_ham0_p4_ishres_dhires_filtered_genlock, + lts_aga_fm0_ham1_p4_ishres_dhires_filtered_genlock, + lts_aga_fm0_kehb0_p4_ishres_dhires_filtered_genlock, + lts_aga_fm0_kehb1_p4_ishres_dhires_filtered_genlock, + lts_aga_fm0_n0_p8_ishres_dhires_filtered_genlock, + lts_aga_fm0_n1_p8_ishres_dhires_filtered_genlock, + lts_aga_fm0_dpf0_p8_ishres_dhires_filtered_genlock, + lts_aga_fm0_dpf1_p8_ishres_dhires_filtered_genlock, + lts_aga_fm0_ehb0_p8_ishres_dhires_filtered_genlock, + lts_aga_fm0_ehb1_p8_ishres_dhires_filtered_genlock, + lts_aga_fm0_ham0_p8_ishres_dhires_filtered_genlock, + lts_aga_fm0_ham1_p8_ishres_dhires_filtered_genlock, + lts_aga_fm0_kehb0_p8_ishres_dhires_filtered_genlock, + lts_aga_fm0_kehb1_p8_ishres_dhires_filtered_genlock, + lts_aga_fm0_n0_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_n1_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_dpf0_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_dpf1_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_ehb0_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_ehb1_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_ham0_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_ham1_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_kehb0_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_kehb1_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_n0_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_n1_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_dpf0_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_dpf1_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_ehb0_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_ehb1_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_ham0_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_ham1_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_kehb0_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm0_kehb1_p8_ishres_dhires_spr_filtered_genlock, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_fm1_n0_p4_ihires_dlores_filtered_genlock, + lts_aga_fm1_n1_p4_ihires_dlores_filtered_genlock, + lts_aga_fm1_dpf0_p4_ihires_dlores_filtered_genlock, + lts_aga_fm1_dpf1_p4_ihires_dlores_filtered_genlock, + lts_aga_fm1_ehb0_p4_ihires_dlores_filtered_genlock, + lts_aga_fm1_ehb1_p4_ihires_dlores_filtered_genlock, + lts_aga_fm1_ham0_p4_ihires_dlores_filtered_genlock, + lts_aga_fm1_ham1_p4_ihires_dlores_filtered_genlock, + lts_aga_fm1_kehb0_p4_ihires_dlores_filtered_genlock, + lts_aga_fm1_kehb1_p4_ihires_dlores_filtered_genlock, + lts_aga_fm1_n0_p8_ihires_dlores_filtered_genlock, + lts_aga_fm1_n1_p8_ihires_dlores_filtered_genlock, + lts_aga_fm1_dpf0_p8_ihires_dlores_filtered_genlock, + lts_aga_fm1_dpf1_p8_ihires_dlores_filtered_genlock, + lts_aga_fm1_ehb0_p8_ihires_dlores_filtered_genlock, + lts_aga_fm1_ehb1_p8_ihires_dlores_filtered_genlock, + lts_aga_fm1_ham0_p8_ihires_dlores_filtered_genlock, + lts_aga_fm1_ham1_p8_ihires_dlores_filtered_genlock, + lts_aga_fm1_kehb0_p8_ihires_dlores_filtered_genlock, + lts_aga_fm1_kehb1_p8_ihires_dlores_filtered_genlock, + lts_aga_fm1_n0_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_n1_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_dpf0_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_dpf1_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_ehb0_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_ehb1_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_ham0_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_ham1_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_kehb0_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_kehb1_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_n0_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_n1_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_dpf0_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_dpf1_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_ehb0_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_ehb1_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_ham0_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_ham1_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_kehb0_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_kehb1_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm1_n0_p4_ishres_dlores_filtered_genlock, + lts_aga_fm1_n1_p4_ishres_dlores_filtered_genlock, + lts_aga_fm1_dpf0_p4_ishres_dlores_filtered_genlock, + lts_aga_fm1_dpf1_p4_ishres_dlores_filtered_genlock, + lts_aga_fm1_ehb0_p4_ishres_dlores_filtered_genlock, + lts_aga_fm1_ehb1_p4_ishres_dlores_filtered_genlock, + lts_aga_fm1_ham0_p4_ishres_dlores_filtered_genlock, + lts_aga_fm1_ham1_p4_ishres_dlores_filtered_genlock, + lts_aga_fm1_kehb0_p4_ishres_dlores_filtered_genlock, + lts_aga_fm1_kehb1_p4_ishres_dlores_filtered_genlock, + lts_aga_fm1_n0_p8_ishres_dlores_filtered_genlock, + lts_aga_fm1_n1_p8_ishres_dlores_filtered_genlock, + lts_aga_fm1_dpf0_p8_ishres_dlores_filtered_genlock, + lts_aga_fm1_dpf1_p8_ishres_dlores_filtered_genlock, + lts_aga_fm1_ehb0_p8_ishres_dlores_filtered_genlock, + lts_aga_fm1_ehb1_p8_ishres_dlores_filtered_genlock, + lts_aga_fm1_ham0_p8_ishres_dlores_filtered_genlock, + lts_aga_fm1_ham1_p8_ishres_dlores_filtered_genlock, + lts_aga_fm1_kehb0_p8_ishres_dlores_filtered_genlock, + lts_aga_fm1_kehb1_p8_ishres_dlores_filtered_genlock, + lts_aga_fm1_n0_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_n1_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_dpf0_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_dpf1_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_ehb0_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_ehb1_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_ham0_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_ham1_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_kehb0_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_kehb1_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_n0_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_n1_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_dpf0_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_dpf1_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_ehb0_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_ehb1_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_ham0_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_ham1_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_kehb0_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm1_kehb1_p8_ishres_dlores_spr_filtered_genlock, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_fm1_n0_p4_ishres_dhires_filtered_genlock, + lts_aga_fm1_n1_p4_ishres_dhires_filtered_genlock, + lts_aga_fm1_dpf0_p4_ishres_dhires_filtered_genlock, + lts_aga_fm1_dpf1_p4_ishres_dhires_filtered_genlock, + lts_aga_fm1_ehb0_p4_ishres_dhires_filtered_genlock, + lts_aga_fm1_ehb1_p4_ishres_dhires_filtered_genlock, + lts_aga_fm1_ham0_p4_ishres_dhires_filtered_genlock, + lts_aga_fm1_ham1_p4_ishres_dhires_filtered_genlock, + lts_aga_fm1_kehb0_p4_ishres_dhires_filtered_genlock, + lts_aga_fm1_kehb1_p4_ishres_dhires_filtered_genlock, + lts_aga_fm1_n0_p8_ishres_dhires_filtered_genlock, + lts_aga_fm1_n1_p8_ishres_dhires_filtered_genlock, + lts_aga_fm1_dpf0_p8_ishres_dhires_filtered_genlock, + lts_aga_fm1_dpf1_p8_ishres_dhires_filtered_genlock, + lts_aga_fm1_ehb0_p8_ishres_dhires_filtered_genlock, + lts_aga_fm1_ehb1_p8_ishres_dhires_filtered_genlock, + lts_aga_fm1_ham0_p8_ishres_dhires_filtered_genlock, + lts_aga_fm1_ham1_p8_ishres_dhires_filtered_genlock, + lts_aga_fm1_kehb0_p8_ishres_dhires_filtered_genlock, + lts_aga_fm1_kehb1_p8_ishres_dhires_filtered_genlock, + lts_aga_fm1_n0_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_n1_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_dpf0_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_dpf1_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_ehb0_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_ehb1_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_ham0_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_ham1_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_kehb0_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_kehb1_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_n0_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_n1_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_dpf0_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_dpf1_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_ehb0_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_ehb1_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_ham0_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_ham1_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_kehb0_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm1_kehb1_p8_ishres_dhires_spr_filtered_genlock, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_fm2_n0_p4_ihires_dlores_filtered_genlock, + lts_aga_fm2_n1_p4_ihires_dlores_filtered_genlock, + lts_aga_fm2_dpf0_p4_ihires_dlores_filtered_genlock, + lts_aga_fm2_dpf1_p4_ihires_dlores_filtered_genlock, + lts_aga_fm2_ehb0_p4_ihires_dlores_filtered_genlock, + lts_aga_fm2_ehb1_p4_ihires_dlores_filtered_genlock, + lts_aga_fm2_ham0_p4_ihires_dlores_filtered_genlock, + lts_aga_fm2_ham1_p4_ihires_dlores_filtered_genlock, + lts_aga_fm2_kehb0_p4_ihires_dlores_filtered_genlock, + lts_aga_fm2_kehb1_p4_ihires_dlores_filtered_genlock, + lts_aga_fm2_n0_p8_ihires_dlores_filtered_genlock, + lts_aga_fm2_n1_p8_ihires_dlores_filtered_genlock, + lts_aga_fm2_dpf0_p8_ihires_dlores_filtered_genlock, + lts_aga_fm2_dpf1_p8_ihires_dlores_filtered_genlock, + lts_aga_fm2_ehb0_p8_ihires_dlores_filtered_genlock, + lts_aga_fm2_ehb1_p8_ihires_dlores_filtered_genlock, + lts_aga_fm2_ham0_p8_ihires_dlores_filtered_genlock, + lts_aga_fm2_ham1_p8_ihires_dlores_filtered_genlock, + lts_aga_fm2_kehb0_p8_ihires_dlores_filtered_genlock, + lts_aga_fm2_kehb1_p8_ihires_dlores_filtered_genlock, + lts_aga_fm2_n0_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_n1_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_dpf0_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_dpf1_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_ehb0_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_ehb1_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_ham0_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_ham1_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_kehb0_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_kehb1_p4_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_n0_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_n1_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_dpf0_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_dpf1_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_ehb0_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_ehb1_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_ham0_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_ham1_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_kehb0_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_kehb1_p8_ihires_dlores_spr_filtered_genlock, + lts_aga_fm2_n0_p4_ishres_dlores_filtered_genlock, + lts_aga_fm2_n1_p4_ishres_dlores_filtered_genlock, + lts_aga_fm2_dpf0_p4_ishres_dlores_filtered_genlock, + lts_aga_fm2_dpf1_p4_ishres_dlores_filtered_genlock, + lts_aga_fm2_ehb0_p4_ishres_dlores_filtered_genlock, + lts_aga_fm2_ehb1_p4_ishres_dlores_filtered_genlock, + lts_aga_fm2_ham0_p4_ishres_dlores_filtered_genlock, + lts_aga_fm2_ham1_p4_ishres_dlores_filtered_genlock, + lts_aga_fm2_kehb0_p4_ishres_dlores_filtered_genlock, + lts_aga_fm2_kehb1_p4_ishres_dlores_filtered_genlock, + lts_aga_fm2_n0_p8_ishres_dlores_filtered_genlock, + lts_aga_fm2_n1_p8_ishres_dlores_filtered_genlock, + lts_aga_fm2_dpf0_p8_ishres_dlores_filtered_genlock, + lts_aga_fm2_dpf1_p8_ishres_dlores_filtered_genlock, + lts_aga_fm2_ehb0_p8_ishres_dlores_filtered_genlock, + lts_aga_fm2_ehb1_p8_ishres_dlores_filtered_genlock, + lts_aga_fm2_ham0_p8_ishres_dlores_filtered_genlock, + lts_aga_fm2_ham1_p8_ishres_dlores_filtered_genlock, + lts_aga_fm2_kehb0_p8_ishres_dlores_filtered_genlock, + lts_aga_fm2_kehb1_p8_ishres_dlores_filtered_genlock, + lts_aga_fm2_n0_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_n1_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_dpf0_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_dpf1_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_ehb0_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_ehb1_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_ham0_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_ham1_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_kehb0_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_kehb1_p4_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_n0_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_n1_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_dpf0_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_dpf1_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_ehb0_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_ehb1_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_ham0_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_ham1_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_kehb0_p8_ishres_dlores_spr_filtered_genlock, + lts_aga_fm2_kehb1_p8_ishres_dlores_spr_filtered_genlock, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_fm2_n0_p4_ishres_dhires_filtered_genlock, + lts_aga_fm2_n1_p4_ishres_dhires_filtered_genlock, + lts_aga_fm2_dpf0_p4_ishres_dhires_filtered_genlock, + lts_aga_fm2_dpf1_p4_ishres_dhires_filtered_genlock, + lts_aga_fm2_ehb0_p4_ishres_dhires_filtered_genlock, + lts_aga_fm2_ehb1_p4_ishres_dhires_filtered_genlock, + lts_aga_fm2_ham0_p4_ishres_dhires_filtered_genlock, + lts_aga_fm2_ham1_p4_ishres_dhires_filtered_genlock, + lts_aga_fm2_kehb0_p4_ishres_dhires_filtered_genlock, + lts_aga_fm2_kehb1_p4_ishres_dhires_filtered_genlock, + lts_aga_fm2_n0_p8_ishres_dhires_filtered_genlock, + lts_aga_fm2_n1_p8_ishres_dhires_filtered_genlock, + lts_aga_fm2_dpf0_p8_ishres_dhires_filtered_genlock, + lts_aga_fm2_dpf1_p8_ishres_dhires_filtered_genlock, + lts_aga_fm2_ehb0_p8_ishres_dhires_filtered_genlock, + lts_aga_fm2_ehb1_p8_ishres_dhires_filtered_genlock, + lts_aga_fm2_ham0_p8_ishres_dhires_filtered_genlock, + lts_aga_fm2_ham1_p8_ishres_dhires_filtered_genlock, + lts_aga_fm2_kehb0_p8_ishres_dhires_filtered_genlock, + lts_aga_fm2_kehb1_p8_ishres_dhires_filtered_genlock, + lts_aga_fm2_n0_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_n1_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_dpf0_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_dpf1_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_ehb0_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_ehb1_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_ham0_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_ham1_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_kehb0_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_kehb1_p4_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_n0_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_n1_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_dpf0_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_dpf1_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_ehb0_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_ehb1_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_ham0_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_ham1_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_kehb0_p8_ishres_dhires_spr_filtered_genlock, + lts_aga_fm2_kehb1_p8_ishres_dhires_spr_filtered_genlock, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +}; diff --git a/linetoscr_aga_genlock_fast.cpp b/linetoscr_aga_genlock_fast.cpp index f503781e..ef04910f 100644 --- a/linetoscr_aga_genlock_fast.cpp +++ b/linetoscr_aga_genlock_fast.cpp @@ -43,9 +43,9 @@ static void lts_aga_n_ilores_dlores_b1_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -56,6 +56,10 @@ static void lts_aga_n_ilores_dlores_b1_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } +static void lts_aga_n_ilores_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_dpf_ilores_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -95,7 +99,6 @@ static void lts_aga_dpf_ilores_dlores_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -104,6 +107,7 @@ static void lts_aga_dpf_ilores_dlores_b1_genlock(int draw_start, int draw_end, i dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -114,6 +118,10 @@ static void lts_aga_dpf_ilores_dlores_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_aga_dpf_ilores_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_ehb_ilores_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -153,7 +161,6 @@ static void lts_aga_ehb_ilores_dlores_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -161,6 +168,7 @@ static void lts_aga_ehb_ilores_dlores_b1_genlock(int draw_start, int draw_end, i } else { col = colors_aga[c]; } + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -171,6 +179,10 @@ static void lts_aga_ehb_ilores_dlores_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_aga_ehb_ilores_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_ham_ilores_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -210,8 +222,8 @@ static void lts_aga_ham_ilores_dlores_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -222,6 +234,10 @@ static void lts_aga_ham_ilores_dlores_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_aga_ham_ilores_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_kehb_ilores_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -261,9 +277,9 @@ static void lts_aga_kehb_ilores_dlores_b1_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -274,6 +290,10 @@ static void lts_aga_kehb_ilores_dlores_b1_genlock(int draw_start, int draw_end, cnt += bufaddv; } } +static void lts_aga_kehb_ilores_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_n_ihires_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -313,9 +333,11 @@ static void lts_aga_n_ihires_dlores_b1_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c]; + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -326,7 +348,7 @@ static void lts_aga_n_ihires_dlores_b1_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_aga_dpf_ihires_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ihires_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -365,15 +387,15 @@ static void lts_aga_dpf_ihires_dlores_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + colf = colors_aga[c]; + col = filter_pixel(col, colf); cp += cpadds[0]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -384,7 +406,7 @@ static void lts_aga_dpf_ihires_dlores_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ehb_ihires_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ihires_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -423,14 +445,17 @@ static void lts_aga_ehb_ihires_dlores_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -441,7 +466,7 @@ static void lts_aga_ehb_ihires_dlores_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ham_ihires_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ihires_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -480,8 +505,27 @@ static void lts_aga_ham_ihires_dlores_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + colf = colors_aga[dpval]; + } + col = filter_pixel(col, colf); cp += cpadds[0]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -492,7 +536,7 @@ static void lts_aga_ham_ihires_dlores_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_kehb_ihires_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ihires_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -531,9 +575,16 @@ static void lts_aga_kehb_ihires_dlores_b1_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; - col = colors_aga[c & 31]; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -544,27 +595,7 @@ static void lts_aga_kehb_ihires_dlores_b1_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_aga_n_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_aga_dpf_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_aga_ehb_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_aga_ham_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_aga_kehb_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_aga_n_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ihires_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -590,12 +621,10 @@ static void lts_aga_n_ilores_dhires_b1_genlock(int draw_start, int draw_end, int if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -605,17 +634,25 @@ static void lts_aga_n_ilores_dhires_b1_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; - col = colors_aga[c]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + c = cp[1]; clxdat |= bplcoltable[c]; - cp += cpadds[1]; + uae_u32 colf; c ^= bxor; - col = colors_aga[c]; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + colf = CONVERT_RGB(v); + } else { + colf = colors_aga[c]; + } + col = filter_pixel(col, colf); + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -626,7 +663,7 @@ static void lts_aga_n_ilores_dhires_b1_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_aga_dpf_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ihires_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -652,13 +689,11 @@ static void lts_aga_dpf_ilores_dhires_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + gbuf++; } else { - *buf1++ = bgcolor; *buf1++ = bgcolor; *gbuf++ = gpix; - *gbuf++ = gpix; } } } else { @@ -667,29 +702,11 @@ static void lts_aga_dpf_ilores_dhires_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + c = cp[1]; clxdat |= bplcoltable[c]; - cp += cpadds[1]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } + decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -700,7 +717,7 @@ static void lts_aga_dpf_ilores_dhires_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ihires_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -726,12 +743,10 @@ static void lts_aga_ehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -741,27 +756,13 @@ static void lts_aga_ehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; - } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + c = cp[1]; clxdat |= bplcoltable[c]; - cp += cpadds[1]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; - } + uae_u32 colf; + colf = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + col = filter_pixel(col, colf); + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -772,7 +773,7 @@ static void lts_aga_ehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ham_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ihires_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -798,12 +799,10 @@ static void lts_aga_ham_ilores_dhires_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -813,15 +812,11 @@ static void lts_aga_ham_ilores_dhires_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; + c ^= bxor; + col = colors_aga[c & 31]; + c = cp[1]; clxdat |= bplcoltable[c]; - cp += cpadds[1]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -832,7 +827,7 @@ static void lts_aga_ham_ilores_dhires_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_kehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ihires_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -858,12 +853,10 @@ static void lts_aga_kehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -873,17 +866,15 @@ static void lts_aga_kehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c & 31]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; + c = cp[1]; clxdat |= bplcoltable[c]; - cp += cpadds[1]; + uae_u32 colf; c ^= bxor; - col = colors_aga[c & 31]; + colf = colors_aga[c & 31]; + col = filter_pixel(col, colf); + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -894,37 +885,79 @@ static void lts_aga_kehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_aga_n_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { - uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; - uae_u8 bxor = ls->bplcon4 >> 8; - int bufaddv = 1 << bufadd; - int cpaddv = 1 << cpadd; - uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); - int end = draw_end; - if (end > hbstrt_offset) { - end = hbstrt_offset; - } - int cnt = draw_end; - if (cnt > draw_startoffset) { - cnt = draw_startoffset; - } - if (cnt > hbstop_offset) { - cnt = hbstop_offset; - } - if (cnt > bpl1dat_trigger_offset) { - cnt = bpl1dat_trigger_offset; - } - while (cnt < end) { - bool bpl = false; - if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { - if (cnt >= draw_startoffset) { - if (cnt < hbstop_offset) { - buf1++; - gbuf++; + lts_null(); +} +static void lts_aga_n_ishres_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ishres_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ishres_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ishres_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ishres_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + gbuf += 2; } else { + *buf1++ = bgcolor; *buf1++ = bgcolor; *gbuf++ = gpix; + *gbuf++ = gpix; } } } else { @@ -933,9 +966,17 @@ static void lts_aga_n_ihires_dhires_b1_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[1]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -946,7 +987,11 @@ static void lts_aga_n_ihires_dhires_b1_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_aga_dpf_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ilores_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -972,10 +1017,12 @@ static void lts_aga_dpf_ihires_dhires_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - gbuf++; + buf1 += 2; + gbuf += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -985,7 +1032,20 @@ static void lts_aga_dpf_ihires_dhires_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -994,6 +1054,7 @@ static void lts_aga_dpf_ihires_dhires_b1_genlock(int draw_start, int draw_end, i dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[1]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -1004,7 +1065,11 @@ static void lts_aga_dpf_ihires_dhires_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ilores_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1030,11 +1095,13 @@ static void lts_aga_ehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - gbuf++; + buf1 += 2; + gbuf += 2; } else { + *buf1++ = bgcolor; *buf1++ = bgcolor; *gbuf++ = gpix; + *gbuf++ = gpix; } } } else { @@ -1043,7 +1110,19 @@ static void lts_aga_ehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -1051,6 +1130,7 @@ static void lts_aga_ehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, i } else { col = colors_aga[c]; } + cp += cpadds[1]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -1061,7 +1141,11 @@ static void lts_aga_ehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ham_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ilores_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1087,11 +1171,13 @@ static void lts_aga_ham_ihires_dhires_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - gbuf++; + buf1 += 2; + gbuf += 2; } else { + *buf1++ = bgcolor; *buf1++ = bgcolor; *gbuf++ = gpix; + *gbuf++ = gpix; } } } else { @@ -1100,8 +1186,15 @@ static void lts_aga_ham_ihires_dhires_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[1]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -1112,7 +1205,11 @@ static void lts_aga_ham_ihires_dhires_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_kehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ilores_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1138,11 +1235,13 @@ static void lts_aga_kehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - gbuf++; + buf1 += 2; + gbuf += 2; } else { + *buf1++ = bgcolor; *buf1++ = bgcolor; *gbuf++ = gpix; + *gbuf++ = gpix; } } } else { @@ -1151,9 +1250,17 @@ static void lts_aga_kehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[1]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -1164,7 +1271,11 @@ static void lts_aga_kehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_aga_n_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ilores_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1203,9 +1314,9 @@ static void lts_aga_n_ishres_dhires_b1_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -1216,7 +1327,11 @@ static void lts_aga_n_ishres_dhires_b1_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_aga_dpf_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ihires_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1255,7 +1370,6 @@ static void lts_aga_dpf_ishres_dhires_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -1264,6 +1378,7 @@ static void lts_aga_dpf_ishres_dhires_b1_genlock(int draw_start, int draw_end, i dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -1274,7 +1389,11 @@ static void lts_aga_dpf_ishres_dhires_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ehb_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ihires_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1313,7 +1432,6 @@ static void lts_aga_ehb_ishres_dhires_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -1321,6 +1439,7 @@ static void lts_aga_ehb_ishres_dhires_b1_genlock(int draw_start, int draw_end, i } else { col = colors_aga[c]; } + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -1331,7 +1450,11 @@ static void lts_aga_ehb_ishres_dhires_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ham_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ihires_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1370,8 +1493,8 @@ static void lts_aga_ham_ishres_dhires_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -1382,7 +1505,11 @@ static void lts_aga_ham_ishres_dhires_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_kehb_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ihires_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1421,9 +1548,9 @@ static void lts_aga_kehb_ishres_dhires_b1_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -1434,7 +1561,11 @@ static void lts_aga_kehb_ishres_dhires_b1_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_aga_n_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ihires_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1460,16 +1591,10 @@ static void lts_aga_n_ilores_dshres_b1_genlock(int draw_start, int draw_end, int if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; - gbuf += 4; + buf1++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; - *gbuf++ = gpix; - *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -1479,33 +1604,11 @@ static void lts_aga_n_ilores_dshres_b1_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - col = colors_aga[c]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; - c ^= bxor; - col = colors_aga[c]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[2]; c ^= bxor; col = colors_aga[c]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; + c = cp[1]; clxdat |= bplcoltable[c]; - cp += cpadds[3]; - c ^= bxor; - col = colors_aga[c]; + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -1516,7 +1619,7 @@ static void lts_aga_n_ilores_dshres_b1_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_aga_dpf_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ishres_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1542,16 +1645,10 @@ static void lts_aga_dpf_ilores_dshres_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; - gbuf += 4; + buf1++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; - *gbuf++ = gpix; - *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -1561,49 +1658,1419 @@ static void lts_aga_dpf_ilores_dshres_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + colf = colors_aga[c]; + col = filter_pixel(col, colf); cp += cpadds[0]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_dpf_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_dpf_ishres_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + colf = colors_aga[dpval]; + } + col = filter_pixel(col, colf); + cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_ehb_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_ehb_ishres_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + colf = CONVERT_RGB(v); + } else { + colf = colors_aga[c]; + } + col = filter_pixel(col, colf); + cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_ham_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + c = cp[1]; + clxdat |= bplcoltable[c]; + decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_ham_ishres_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + colf = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + col = filter_pixel(col, colf); + cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_kehb_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_kehb_ishres_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + colf = colors_aga[c & 31]; + col = filter_pixel(col, colf); + cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_n_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + gbuf += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + cp += cpadds[1]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + cp += cpadds[2]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + cp += cpadds[3]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_n_ilores_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + gbuf += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + cp += cpadds[1]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + cp += cpadds[2]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + cp += cpadds[3]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_dpf_ilores_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + gbuf += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + cp += cpadds[1]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + cp += cpadds[2]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + cp += cpadds[3]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_ehb_ilores_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + gbuf += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[1]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[2]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[3]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_ham_ilores_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + gbuf += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + cp += cpadds[1]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + cp += cpadds[2]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + cp += cpadds[3]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_kehb_ilores_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + gbuf += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + cp += cpadds[1]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_n_ihires_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + gbuf += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + cp += cpadds[1]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_dpf_ihires_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + gbuf += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + cp += cpadds[1]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_ehb_ihires_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + gbuf += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[1]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_ham_ihires_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + gbuf += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + cp += cpadds[0]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + cp += cpadds[1]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_kehb_ihires_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; + } } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; + } else { + bpl = true; + uae_u8 c; + uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } + c ^= bxor; + col = colors_aga[c]; + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[2]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_aga_n_ishres_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; + uae_u8 bxor = ls->bplcon4 >> 8; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; } - dpval ^= bxor; - col = colors_aga[dpval]; } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; + } else { + bpl = true; + uae_u8 c; + uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[3]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -1612,6 +3079,7 @@ static void lts_aga_dpf_ilores_dshres_b1_genlock(int draw_start, int draw_end, i dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -1622,7 +3090,11 @@ static void lts_aga_dpf_ilores_dshres_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ishres_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1648,16 +3120,10 @@ static void lts_aga_ehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; - gbuf += 4; + buf1++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; - *gbuf++ = gpix; - *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -1667,46 +3133,6 @@ static void lts_aga_ehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; - } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; - } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[2]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; - } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[3]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -1714,6 +3140,7 @@ static void lts_aga_ehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, i } else { col = colors_aga[c]; } + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -1724,7 +3151,11 @@ static void lts_aga_ehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ham_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ishres_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1750,16 +3181,10 @@ static void lts_aga_ham_ilores_dshres_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; - gbuf += 4; + buf1++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; - *gbuf++ = gpix; - *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -1769,29 +3194,8 @@ static void lts_aga_ham_ilores_dshres_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[2]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[3]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -1802,7 +3206,11 @@ static void lts_aga_ham_ilores_dshres_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_kehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ishres_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1828,16 +3236,10 @@ static void lts_aga_kehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; - gbuf += 4; + buf1++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; - *gbuf++ = gpix; - *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -1847,33 +3249,9 @@ static void lts_aga_kehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - col = colors_aga[c & 31]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; - c ^= bxor; - col = colors_aga[c & 31]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[2]; - c ^= bxor; - col = colors_aga[c & 31]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[3]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[0]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -1884,7 +3262,11 @@ static void lts_aga_kehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_aga_n_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ishres_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1910,12 +3292,12 @@ static void lts_aga_n_ihires_dshres_b1_genlock(int draw_start, int draw_end, int if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; + *buf2++ = bgcolor; *gbuf++ = gpix; } } @@ -1925,18 +3307,11 @@ static void lts_aga_n_ihires_dshres_b1_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - col = colors_aga[c]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[0]; *buf1++ = col; + *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; } @@ -1946,7 +3321,11 @@ static void lts_aga_n_ihires_dshres_b1_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_aga_dpf_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ilores_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -1972,12 +3351,12 @@ static void lts_aga_dpf_ihires_dshres_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; + *buf2++ = bgcolor; *gbuf++ = gpix; } } @@ -1987,21 +3366,6 @@ static void lts_aga_dpf_ihires_dshres_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -2010,7 +3374,9 @@ static void lts_aga_dpf_ihires_dshres_b1_genlock(int draw_start, int draw_end, i dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[0]; *buf1++ = col; + *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; } @@ -2020,7 +3386,11 @@ static void lts_aga_dpf_ihires_dshres_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ilores_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2046,12 +3416,12 @@ static void lts_aga_ehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; + *buf2++ = bgcolor; *gbuf++ = gpix; } } @@ -2061,20 +3431,6 @@ static void lts_aga_ehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; - } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -2082,7 +3438,9 @@ static void lts_aga_ehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, i } else { col = colors_aga[c]; } + cp += cpadds[0]; *buf1++ = col; + *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; } @@ -2092,7 +3450,11 @@ static void lts_aga_ehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ham_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ilores_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2118,12 +3480,12 @@ static void lts_aga_ham_ihires_dshres_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; + *buf2++ = bgcolor; *gbuf++ = gpix; } } @@ -2133,16 +3495,10 @@ static void lts_aga_ham_ihires_dshres_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; + *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; } @@ -2152,7 +3508,11 @@ static void lts_aga_ham_ihires_dshres_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_kehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ilores_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2178,12 +3538,12 @@ static void lts_aga_kehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; + *buf2++ = bgcolor; *gbuf++ = gpix; } } @@ -2193,18 +3553,11 @@ static void lts_aga_kehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - col = colors_aga[c & 31]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[0]; *buf1++ = col; + *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; } @@ -2214,7 +3567,11 @@ static void lts_aga_kehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_aga_n_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ilores_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2241,9 +3598,11 @@ static void lts_aga_n_ishres_dshres_b1_genlock(int draw_start, int draw_end, int if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; gbuf++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; *gbuf++ = gpix; } } @@ -2253,10 +3612,13 @@ static void lts_aga_n_ishres_dshres_b1_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c]; + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; + *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; } @@ -2266,7 +3628,7 @@ static void lts_aga_n_ishres_dshres_b1_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_aga_dpf_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ihires_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2293,9 +3655,11 @@ static void lts_aga_dpf_ishres_dshres_b1_genlock(int draw_start, int draw_end, i if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; gbuf++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; *gbuf++ = gpix; } } @@ -2305,16 +3669,17 @@ static void lts_aga_dpf_ishres_dshres_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + colf = colors_aga[c]; + col = filter_pixel(col, colf); cp += cpadds[0]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } *buf1++ = col; + *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; } @@ -2324,7 +3689,7 @@ static void lts_aga_dpf_ishres_dshres_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ehb_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2351,9 +3716,11 @@ static void lts_aga_ehb_ishres_dshres_b1_genlock(int draw_start, int draw_end, i if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; gbuf++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; *gbuf++ = gpix; } } @@ -2363,15 +3730,19 @@ static void lts_aga_ehb_ishres_dshres_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; + *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; } @@ -2381,7 +3752,7 @@ static void lts_aga_ehb_ishres_dshres_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ham_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ihires_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2408,9 +3779,11 @@ static void lts_aga_ham_ishres_dshres_b1_genlock(int draw_start, int draw_end, i if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; gbuf++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; *gbuf++ = gpix; } } @@ -2420,9 +3793,29 @@ static void lts_aga_ham_ishres_dshres_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + colf = colors_aga[dpval]; + } + col = filter_pixel(col, colf); cp += cpadds[0]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); *buf1++ = col; + *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; } @@ -2432,7 +3825,7 @@ static void lts_aga_ham_ishres_dshres_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_kehb_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2459,9 +3852,11 @@ static void lts_aga_kehb_ishres_dshres_b1_genlock(int draw_start, int draw_end, if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; gbuf++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; *gbuf++ = gpix; } } @@ -2471,10 +3866,18 @@ static void lts_aga_kehb_ishres_dshres_b1_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; - col = colors_aga[c & 31]; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; + *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; } @@ -2484,7 +3887,7 @@ static void lts_aga_kehb_ishres_dshres_b1_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_aga_n_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ihires_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2525,9 +3928,25 @@ static void lts_aga_n_ilores_dlores_b2_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; - col = colors_aga[c]; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + colf = CONVERT_RGB(v); + } else { + colf = colors_aga[c]; + } + col = filter_pixel(col, colf); + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -2539,7 +3958,7 @@ static void lts_aga_n_ilores_dlores_b2_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_aga_dpf_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2580,15 +3999,11 @@ static void lts_aga_dpf_ilores_dlores_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + c = cp[1]; + clxdat |= bplcoltable[c]; + decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); cp += cpadds[0]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -2600,7 +4015,7 @@ static void lts_aga_dpf_ilores_dlores_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ehb_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ihires_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2641,14 +4056,13 @@ static void lts_aga_ehb_ilores_dlores_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + colf = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + col = filter_pixel(col, colf); cp += cpadds[0]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; - } *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -2660,7 +4074,7 @@ static void lts_aga_ehb_ilores_dlores_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ham_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2701,8 +4115,11 @@ static void lts_aga_ham_ilores_dlores_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + c = cp[1]; + clxdat |= bplcoltable[c]; cp += cpadds[0]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -2714,7 +4131,7 @@ static void lts_aga_ham_ilores_dlores_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_kehb_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ihires_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2755,9 +4172,15 @@ static void lts_aga_kehb_ilores_dlores_b2_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c & 31]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + colf = colors_aga[c & 31]; + col = filter_pixel(col, colf); + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -2769,7 +4192,47 @@ static void lts_aga_kehb_ilores_dlores_b2_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_aga_n_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ishres_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ishres_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ishres_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ishres_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ishres_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2795,13 +4258,16 @@ static void lts_aga_n_ihires_dlores_b2_genlock(int draw_start, int draw_end, int if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; - gbuf++; + buf1 += 2; + buf2 += 2; + gbuf += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf2++ = bgcolor; *buf2++ = bgcolor; *gbuf++ = gpix; + *gbuf++ = gpix; } } } else { @@ -2810,9 +4276,18 @@ static void lts_aga_n_ihires_dlores_b2_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; cp += cpadds[0]; + *buf1++ = col; + *buf2++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -2824,7 +4299,11 @@ static void lts_aga_n_ihires_dlores_b2_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_aga_dpf_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ilores_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2850,12 +4329,15 @@ static void lts_aga_dpf_ihires_dlores_b2_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; - gbuf++; + buf1 += 2; + buf2 += 2; + gbuf += 2; } else { + *buf1++ = bgcolor; *buf1++ = bgcolor; *buf2++ = bgcolor; + *buf2++ = bgcolor; + *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -2865,7 +4347,21 @@ static void lts_aga_dpf_ihires_dlores_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } cp += cpadds[0]; + *buf1++ = col; + *buf2++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -2874,6 +4370,7 @@ static void lts_aga_dpf_ihires_dlores_b2_genlock(int draw_start, int draw_end, i dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -2885,7 +4382,11 @@ static void lts_aga_dpf_ihires_dlores_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ilores_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2911,13 +4412,16 @@ static void lts_aga_ehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; - gbuf++; + buf1 += 2; + buf2 += 2; + gbuf += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf2++ = bgcolor; *buf2++ = bgcolor; *gbuf++ = gpix; + *gbuf++ = gpix; } } } else { @@ -2926,7 +4430,20 @@ static void lts_aga_ehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } cp += cpadds[0]; + *buf1++ = col; + *buf2++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -2934,6 +4451,7 @@ static void lts_aga_ehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, i } else { col = colors_aga[c]; } + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -2945,7 +4463,11 @@ static void lts_aga_ehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ham_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ilores_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -2971,13 +4493,16 @@ static void lts_aga_ham_ihires_dlores_b2_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; - gbuf++; + buf1 += 2; + buf2 += 2; + gbuf += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf2++ = bgcolor; *buf2++ = bgcolor; *gbuf++ = gpix; + *gbuf++ = gpix; } } } else { @@ -2986,8 +4511,16 @@ static void lts_aga_ham_ihires_dlores_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); cp += cpadds[0]; + *buf1++ = col; + *buf2++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -2999,7 +4532,11 @@ static void lts_aga_ham_ihires_dlores_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_kehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ilores_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3025,13 +4562,16 @@ static void lts_aga_kehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; - gbuf++; + buf1 += 2; + buf2 += 2; + gbuf += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf2++ = bgcolor; *buf2++ = bgcolor; *gbuf++ = gpix; + *gbuf++ = gpix; } } } else { @@ -3040,9 +4580,18 @@ static void lts_aga_kehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; cp += cpadds[0]; + *buf1++ = col; + *buf2++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3054,27 +4603,11 @@ static void lts_aga_kehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_aga_n_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_aga_dpf_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_aga_ehb_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_aga_ham_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_aga_kehb_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ilores_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { lts_null(); } -static void lts_aga_n_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3100,15 +4633,12 @@ static void lts_aga_n_ilores_dhires_b2_genlock(int draw_start, int draw_end, int if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { - *buf1++ = bgcolor; *buf1++ = bgcolor; *buf2++ = bgcolor; - *buf2++ = bgcolor; - *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -3118,18 +4648,9 @@ static void lts_aga_n_ilores_dhires_b2_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - col = colors_aga[c]; - *buf1++ = col; - *buf2++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3141,7 +4662,11 @@ static void lts_aga_n_ilores_dhires_b2_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_aga_dpf_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ihires_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_dpf_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3167,16 +4692,13 @@ static void lts_aga_dpf_ilores_dhires_b2_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf2++ = bgcolor; *buf2++ = bgcolor; *gbuf++ = gpix; - *gbuf++ = gpix; } } } else { @@ -3185,22 +4707,6 @@ static void lts_aga_dpf_ilores_dhires_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } - *buf1++ = col; - *buf2++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -3209,6 +4715,7 @@ static void lts_aga_dpf_ilores_dhires_b2_genlock(int draw_start, int draw_end, i dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3220,7 +4727,11 @@ static void lts_aga_dpf_ilores_dhires_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ihires_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ehb_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3246,15 +4757,12 @@ static void lts_aga_ehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { - *buf1++ = bgcolor; *buf1++ = bgcolor; *buf2++ = bgcolor; - *buf2++ = bgcolor; - *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -3264,21 +4772,6 @@ static void lts_aga_ehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; - } - *buf1++ = col; - *buf2++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -3286,6 +4779,7 @@ static void lts_aga_ehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, i } else { col = colors_aga[c]; } + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3297,7 +4791,11 @@ static void lts_aga_ehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ham_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ihires_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_ham_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3323,15 +4821,12 @@ static void lts_aga_ham_ilores_dhires_b2_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { - *buf1++ = bgcolor; *buf1++ = bgcolor; *buf2++ = bgcolor; - *buf2++ = bgcolor; - *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -3341,16 +4836,8 @@ static void lts_aga_ham_ilores_dhires_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); - *buf1++ = col; - *buf2++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3362,7 +4849,11 @@ static void lts_aga_ham_ilores_dhires_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_kehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ihires_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_kehb_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3388,15 +4879,12 @@ static void lts_aga_kehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { - *buf1++ = bgcolor; *buf1++ = bgcolor; *buf2++ = bgcolor; - *buf2++ = bgcolor; - *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -3406,18 +4894,9 @@ static void lts_aga_kehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - col = colors_aga[c & 31]; - *buf1++ = col; - *buf2++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3429,7 +4908,11 @@ static void lts_aga_kehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_aga_n_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ihires_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_aga_n_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3470,9 +4953,11 @@ static void lts_aga_n_ihires_dhires_b2_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c]; + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3484,7 +4969,7 @@ static void lts_aga_n_ihires_dhires_b2_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_aga_dpf_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_n_ishres_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3525,15 +5010,15 @@ static void lts_aga_dpf_ihires_dhires_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + colf = colors_aga[c]; + col = filter_pixel(col, colf); cp += cpadds[0]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3545,7 +5030,7 @@ static void lts_aga_dpf_ihires_dhires_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ehb_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3586,14 +5071,17 @@ static void lts_aga_ehb_ihires_dhires_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3605,7 +5093,7 @@ static void lts_aga_ehb_ihires_dhires_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ham_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_dpf_ishres_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3646,8 +5134,27 @@ static void lts_aga_ham_ihires_dhires_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + col = colors_aga[dpval]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + { + uae_u8 dpval = dpf_lookup[c]; + if (dpf_lookup_no[c]) { + dpval += dblpfofs[bpldualpf2of]; + } + dpval ^= bxor; + colf = colors_aga[dpval]; + } + col = filter_pixel(col, colf); cp += cpadds[0]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3659,7 +5166,7 @@ static void lts_aga_ham_ihires_dhires_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_kehb_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3700,9 +5207,16 @@ static void lts_aga_kehb_ihires_dhires_b2_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; - col = colors_aga[c & 31]; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3714,7 +5228,7 @@ static void lts_aga_kehb_ihires_dhires_b2_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_aga_n_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ehb_ishres_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3755,9 +5269,25 @@ static void lts_aga_n_ishres_dhires_b2_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; - col = colors_aga[c]; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + col = CONVERT_RGB(v); + } else { + col = colors_aga[c]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + if (c & 0x20) { + uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; + colf = CONVERT_RGB(v); + } else { + colf = colors_aga[c]; + } + col = filter_pixel(col, colf); + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3769,7 +5299,7 @@ static void lts_aga_n_ishres_dhires_b2_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_aga_dpf_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3810,15 +5340,11 @@ static void lts_aga_dpf_ishres_dhires_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + c = cp[1]; + clxdat |= bplcoltable[c]; + decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); cp += cpadds[0]; - { - uae_u8 dpval = dpf_lookup[c]; - if (dpf_lookup_no[c]) { - dpval += dblpfofs[bpldualpf2of]; - } - dpval ^= bxor; - col = colors_aga[dpval]; - } *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3830,7 +5356,7 @@ static void lts_aga_dpf_ishres_dhires_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ehb_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_ham_ishres_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3871,14 +5397,13 @@ static void lts_aga_ehb_ishres_dhires_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + colf = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + col = filter_pixel(col, colf); cp += cpadds[0]; - c ^= bxor; - if (c & 0x20) { - uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; - col = CONVERT_RGB(v); - } else { - col = colors_aga[c]; - } *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3890,7 +5415,7 @@ static void lts_aga_ehb_ishres_dhires_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_ham_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3931,8 +5456,11 @@ static void lts_aga_ham_ishres_dhires_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c ^= bxor; + col = colors_aga[c & 31]; + c = cp[1]; + clxdat |= bplcoltable[c]; cp += cpadds[0]; - col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3944,7 +5472,7 @@ static void lts_aga_ham_ishres_dhires_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_aga_kehb_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_aga_kehb_ishres_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; uae_u8 bxor = ls->bplcon4 >> 8; @@ -3985,9 +5513,15 @@ static void lts_aga_kehb_ishres_dhires_b2_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c & 31]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c ^= bxor; + colf = colors_aga[c & 31]; + col = filter_pixel(col, colf); + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4049,36 +5583,36 @@ static void lts_aga_n_ilores_dshres_b2_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[2]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[2]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[3]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[3]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4090,6 +5624,10 @@ static void lts_aga_n_ilores_dshres_b2_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } +static void lts_aga_n_ilores_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_dpf_ilores_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4140,7 +5678,6 @@ static void lts_aga_dpf_ilores_dshres_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -4149,13 +5686,13 @@ static void lts_aga_dpf_ilores_dshres_b2_genlock(int draw_start, int draw_end, i dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -4164,13 +5701,13 @@ static void lts_aga_dpf_ilores_dshres_b2_genlock(int draw_start, int draw_end, i dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[2]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -4179,13 +5716,13 @@ static void lts_aga_dpf_ilores_dshres_b2_genlock(int draw_start, int draw_end, i dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[2]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[3]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -4194,6 +5731,7 @@ static void lts_aga_dpf_ilores_dshres_b2_genlock(int draw_start, int draw_end, i dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[3]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4205,6 +5743,10 @@ static void lts_aga_dpf_ilores_dshres_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_aga_dpf_ilores_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_ehb_ilores_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4255,7 +5797,6 @@ static void lts_aga_ehb_ilores_dshres_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -4263,13 +5804,13 @@ static void lts_aga_ehb_ilores_dshres_b2_genlock(int draw_start, int draw_end, i } else { col = colors_aga[c]; } + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -4277,13 +5818,13 @@ static void lts_aga_ehb_ilores_dshres_b2_genlock(int draw_start, int draw_end, i } else { col = colors_aga[c]; } + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[2]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -4291,13 +5832,13 @@ static void lts_aga_ehb_ilores_dshres_b2_genlock(int draw_start, int draw_end, i } else { col = colors_aga[c]; } + cp += cpadds[2]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[3]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -4305,6 +5846,7 @@ static void lts_aga_ehb_ilores_dshres_b2_genlock(int draw_start, int draw_end, i } else { col = colors_aga[c]; } + cp += cpadds[3]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4316,6 +5858,10 @@ static void lts_aga_ehb_ilores_dshres_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_aga_ehb_ilores_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_ham_ilores_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4366,32 +5912,32 @@ static void lts_aga_ham_ilores_dshres_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[2]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[2]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[3]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[3]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4403,6 +5949,10 @@ static void lts_aga_ham_ilores_dshres_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_aga_ham_ilores_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_kehb_ilores_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4453,36 +6003,36 @@ static void lts_aga_kehb_ilores_dshres_b2_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[2]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[2]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[3]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[3]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4494,6 +6044,10 @@ static void lts_aga_kehb_ilores_dshres_b2_genlock(int draw_start, int draw_end, cnt += bufaddv; } } +static void lts_aga_kehb_ilores_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_n_ihires_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4538,18 +6092,18 @@ static void lts_aga_n_ihires_dshres_b2_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4561,6 +6115,10 @@ static void lts_aga_n_ihires_dshres_b2_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } +static void lts_aga_n_ihires_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_dpf_ihires_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4605,7 +6163,6 @@ static void lts_aga_dpf_ihires_dshres_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -4614,13 +6171,13 @@ static void lts_aga_dpf_ihires_dshres_b2_genlock(int draw_start, int draw_end, i dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -4629,6 +6186,7 @@ static void lts_aga_dpf_ihires_dshres_b2_genlock(int draw_start, int draw_end, i dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4640,6 +6198,10 @@ static void lts_aga_dpf_ihires_dshres_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_aga_dpf_ihires_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_ehb_ihires_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4684,7 +6246,6 @@ static void lts_aga_ehb_ihires_dshres_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -4692,13 +6253,13 @@ static void lts_aga_ehb_ihires_dshres_b2_genlock(int draw_start, int draw_end, i } else { col = colors_aga[c]; } + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -4706,6 +6267,7 @@ static void lts_aga_ehb_ihires_dshres_b2_genlock(int draw_start, int draw_end, i } else { col = colors_aga[c]; } + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4717,6 +6279,10 @@ static void lts_aga_ehb_ihires_dshres_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_aga_ehb_ihires_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_ham_ihires_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4761,16 +6327,16 @@ static void lts_aga_ham_ihires_dshres_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4782,6 +6348,10 @@ static void lts_aga_ham_ihires_dshres_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_aga_ham_ihires_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_kehb_ihires_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4826,18 +6396,18 @@ static void lts_aga_kehb_ihires_dshres_b2_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[1]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[1]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4849,6 +6419,10 @@ static void lts_aga_kehb_ihires_dshres_b2_genlock(int draw_start, int draw_end, cnt += bufaddv; } } +static void lts_aga_kehb_ihires_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_n_ishres_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4890,9 +6464,9 @@ static void lts_aga_n_ishres_dshres_b2_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4904,6 +6478,10 @@ static void lts_aga_n_ishres_dshres_b2_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } +static void lts_aga_n_ishres_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_dpf_ishres_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -4945,7 +6523,6 @@ static void lts_aga_dpf_ishres_dshres_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; { uae_u8 dpval = dpf_lookup[c]; if (dpf_lookup_no[c]) { @@ -4954,6 +6531,7 @@ static void lts_aga_dpf_ishres_dshres_b2_genlock(int draw_start, int draw_end, i dpval ^= bxor; col = colors_aga[dpval]; } + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4965,6 +6543,10 @@ static void lts_aga_dpf_ishres_dshres_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_aga_dpf_ishres_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_ehb_ishres_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -5006,7 +6588,6 @@ static void lts_aga_ehb_ishres_dshres_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; if (c & 0x20) { uae_u32 v = (colors_aga[c & 31] >> 1) & 0x7f7f7f; @@ -5014,6 +6595,7 @@ static void lts_aga_ehb_ishres_dshres_b2_genlock(int draw_start, int draw_end, i } else { col = colors_aga[c]; } + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -5025,6 +6607,10 @@ static void lts_aga_ehb_ishres_dshres_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_aga_ehb_ishres_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_ham_ishres_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -5066,8 +6652,8 @@ static void lts_aga_ham_ishres_dshres_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; col = decode_ham_pixel_aga_fast(c, planes, bxor, colors_aga); + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -5079,6 +6665,10 @@ static void lts_aga_ham_ishres_dshres_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_aga_ham_ishres_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_aga_kehb_ishres_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u32 *colors_aga = (uae_u32*)ls->linecolorstate; @@ -5120,9 +6710,9 @@ static void lts_aga_kehb_ishres_dshres_b2_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpadds[0]; c ^= bxor; col = colors_aga[c & 31]; + cp += cpadds[0]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -5134,6 +6724,10 @@ static void lts_aga_kehb_ishres_dshres_b2_genlock(int draw_start, int draw_end, cnt += bufaddv; } } +static void lts_aga_kehb_ishres_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static LINETOSRC_FUNCF linetoscr_aga_genlock_fast_funcs[] = { lts_aga_n_ilores_dlores_b1_genlock, lts_aga_dpf_ilores_dlores_b1_genlock, @@ -5227,3 +6821,96 @@ static LINETOSRC_FUNCF linetoscr_aga_genlock_fast_funcs[] = { lts_aga_kehb_ishres_dshres_b2_genlock, NULL }; +static LINETOSRC_FUNCF linetoscr_aga_genlock_fast_funcs_filtered[] = { + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_n_ihires_dlores_b1_filtered_genlock, + lts_aga_dpf_ihires_dlores_b1_filtered_genlock, + lts_aga_ehb_ihires_dlores_b1_filtered_genlock, + lts_aga_ham_ihires_dlores_b1_filtered_genlock, + lts_aga_kehb_ihires_dlores_b1_filtered_genlock, + lts_aga_n_ishres_dlores_b1_filtered_genlock, + lts_aga_dpf_ishres_dlores_b1_filtered_genlock, + lts_aga_ehb_ishres_dlores_b1_filtered_genlock, + lts_aga_ham_ishres_dlores_b1_filtered_genlock, + lts_aga_kehb_ishres_dlores_b1_filtered_genlock, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_n_ishres_dhires_b1_filtered_genlock, + lts_aga_dpf_ishres_dhires_b1_filtered_genlock, + lts_aga_ehb_ishres_dhires_b1_filtered_genlock, + lts_aga_ham_ishres_dhires_b1_filtered_genlock, + lts_aga_kehb_ishres_dhires_b1_filtered_genlock, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_n_ihires_dlores_b2_filtered_genlock, + lts_aga_dpf_ihires_dlores_b2_filtered_genlock, + lts_aga_ehb_ihires_dlores_b2_filtered_genlock, + lts_aga_ham_ihires_dlores_b2_filtered_genlock, + lts_aga_kehb_ihires_dlores_b2_filtered_genlock, + lts_aga_n_ishres_dlores_b2_filtered_genlock, + lts_aga_dpf_ishres_dlores_b2_filtered_genlock, + lts_aga_ehb_ishres_dlores_b2_filtered_genlock, + lts_aga_ham_ishres_dlores_b2_filtered_genlock, + lts_aga_kehb_ishres_dlores_b2_filtered_genlock, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_aga_n_ishres_dhires_b2_filtered_genlock, + lts_aga_dpf_ishres_dhires_b2_filtered_genlock, + lts_aga_ehb_ishres_dhires_b2_filtered_genlock, + lts_aga_ham_ishres_dhires_b2_filtered_genlock, + lts_aga_kehb_ishres_dhires_b2_filtered_genlock, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +}; diff --git a/linetoscr_ecs_fast.cpp b/linetoscr_ecs_fast.cpp index 10845e6e..efd44960 100644 --- a/linetoscr_ecs_fast.cpp +++ b/linetoscr_ecs_fast.cpp @@ -39,8 +39,8 @@ static void lts_ecs_n_ilores_dlores_b1(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c]]; + cp += cpaddv; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -49,6 +49,10 @@ static void lts_ecs_n_ilores_dlores_b1(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } +static void lts_ecs_n_ilores_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_dpf_ilores_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -84,11 +88,11 @@ static void lts_ecs_dpf_ilores_dlores_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; { uae_u8 dpval = dpf_lookup[c]; col = xcolors[colors_ocs[dpval]]; } + cp += cpaddv; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -97,6 +101,10 @@ static void lts_ecs_dpf_ilores_dlores_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_ecs_dpf_ilores_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_ehb_ilores_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -132,13 +140,13 @@ static void lts_ecs_ehb_ilores_dlores_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; c &= bplehb_mask; if (c <= 31) { col = xcolors[colors_ocs[c]]; } else { col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; } + cp += cpaddv; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -147,6 +155,10 @@ static void lts_ecs_ehb_ilores_dlores_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_ecs_ehb_ilores_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_ham_ilores_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -182,8 +194,8 @@ static void lts_ecs_ham_ilores_dlores_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = decode_ham_pixel_fast(c, colors_ocs); + cp += cpaddv; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -192,6 +204,10 @@ static void lts_ecs_ham_ilores_dlores_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_ecs_ham_ilores_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_kehb_ilores_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -227,8 +243,8 @@ static void lts_ecs_kehb_ilores_dlores_b1(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c & 31]]; + cp += cpaddv; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -237,6 +253,10 @@ static void lts_ecs_kehb_ilores_dlores_b1(int draw_start, int draw_end, int draw cnt += bufaddv; } } +static void lts_ecs_kehb_ilores_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_n_ihires_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -272,8 +292,10 @@ static void lts_ecs_n_ihires_dlores_b1(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c]]; + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpaddv; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -282,7 +304,7 @@ static void lts_ecs_n_ihires_dlores_b1(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_ecs_dpf_ihires_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ihires_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -317,11 +339,13 @@ static void lts_ecs_dpf_ihires_dlores_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + colf = xcolors[colors_ocs[c]]; + col = filter_pixel(col, colf); cp += cpaddv; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -330,7 +354,7 @@ static void lts_ecs_dpf_ihires_dlores_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ehb_ihires_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ihires_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -365,13 +389,13 @@ static void lts_ecs_ehb_ihires_dlores_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpaddv; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -380,7 +404,7 @@ static void lts_ecs_ehb_ihires_dlores_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ham_ihires_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ihires_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -415,8 +439,19 @@ static void lts_ecs_ham_ihires_dlores_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + { + uae_u8 dpval = dpf_lookup[c]; + colf = xcolors[colors_ocs[dpval]]; + } + col = filter_pixel(col, colf); cp += cpaddv; - col = decode_ham_pixel_fast(c, colors_ocs); *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -425,7 +460,7 @@ static void lts_ecs_ham_ihires_dlores_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_kehb_ihires_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ihires_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -460,8 +495,15 @@ static void lts_ecs_kehb_ihires_dlores_b1(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; cp += cpaddv; - col = xcolors[colors_ocs[c & 31]]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -470,27 +512,7 @@ static void lts_ecs_kehb_ihires_dlores_b1(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_ecs_n_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_ecs_dpf_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_ecs_ehb_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_ecs_ham_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_ecs_kehb_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_ecs_n_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ihires_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -514,10 +536,9 @@ static void lts_ecs_n_ilores_dhires_b1(int draw_start, int draw_end, int draw_st if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { @@ -526,12 +547,23 @@ static void lts_ecs_n_ilores_dhires_b1(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - col = xcolors[colors_ocs[c]]; - *buf1++ = col; - c = *cp; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + c = cp[1]; clxdat |= bplcoltable[c]; + uae_u32 colf; + c &= bplehb_mask; + if (c <= 31) { + colf = xcolors[colors_ocs[c]]; + } else { + colf = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + col = filter_pixel(col, colf); cp += cpaddv; - col = xcolors[colors_ocs[c]]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -540,7 +572,7 @@ static void lts_ecs_n_ilores_dhires_b1(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_ecs_dpf_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ihires_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -564,10 +596,9 @@ static void lts_ecs_dpf_ilores_dhires_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { @@ -576,18 +607,10 @@ static void lts_ecs_dpf_ilores_dhires_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } - *buf1++ = col; - c = *cp; + col = decode_ham_pixel_fast(c, colors_ocs); + c = cp[1]; clxdat |= bplcoltable[c]; cp += cpaddv; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -596,7 +619,7 @@ static void lts_ecs_dpf_ilores_dhires_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ehb_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ihires_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -620,10 +643,9 @@ static void lts_ecs_ehb_ilores_dhires_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { @@ -632,22 +654,13 @@ static void lts_ecs_ehb_ilores_dhires_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } - *buf1++ = col; - c = *cp; + col = decode_ham_pixel_fast(c, colors_ocs); + c = cp[1]; clxdat |= bplcoltable[c]; + uae_u32 colf; + colf = decode_ham_pixel_fast(c, colors_ocs); + col = filter_pixel(col, colf); cp += cpaddv; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -656,7 +669,7 @@ static void lts_ecs_ehb_ilores_dhires_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ham_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ihires_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -680,10 +693,9 @@ static void lts_ecs_ham_ilores_dhires_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { @@ -692,12 +704,10 @@ static void lts_ecs_ham_ilores_dhires_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - col = decode_ham_pixel_fast(c, colors_ocs); - *buf1++ = col; - c = *cp; + col = xcolors[colors_ocs[c & 31]]; + c = cp[1]; clxdat |= bplcoltable[c]; cp += cpaddv; - col = decode_ham_pixel_fast(c, colors_ocs); *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -706,7 +716,7 @@ static void lts_ecs_ham_ilores_dhires_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_kehb_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ihires_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -730,10 +740,9 @@ static void lts_ecs_kehb_ilores_dhires_b1(int draw_start, int draw_end, int draw if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { @@ -743,11 +752,12 @@ static void lts_ecs_kehb_ilores_dhires_b1(int draw_start, int draw_end, int draw c = *cp; clxdat |= bplcoltable[c]; col = xcolors[colors_ocs[c & 31]]; - *buf1++ = col; - c = *cp; + c = cp[1]; clxdat |= bplcoltable[c]; + uae_u32 colf; + colf = xcolors[colors_ocs[c & 31]]; + col = filter_pixel(col, colf); cp += cpaddv; - col = xcolors[colors_ocs[c & 31]]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -756,7 +766,47 @@ static void lts_ecs_kehb_ilores_dhires_b1(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_ecs_n_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ishres_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ishres_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ishres_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ishres_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ishres_dlores_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ishres_dlores_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -780,9 +830,10 @@ static void lts_ecs_n_ihires_dhires_b1(int draw_start, int draw_end, int draw_st if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; + buf1 += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; } } } else { @@ -791,9 +842,13 @@ static void lts_ecs_n_ihires_dhires_b1(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c]]; *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + cp += cpaddv; + *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -801,7 +856,11 @@ static void lts_ecs_n_ihires_dhires_b1(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_ecs_dpf_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ilores_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -825,9 +884,10 @@ static void lts_ecs_dpf_ihires_dhires_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; + buf1 += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; } } } else { @@ -836,12 +896,19 @@ static void lts_ecs_dpf_ihires_dhires_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; { uae_u8 dpval = dpf_lookup[c]; col = xcolors[colors_ocs[dpval]]; } *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + cp += cpaddv; + *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -849,7 +916,11 @@ static void lts_ecs_dpf_ihires_dhires_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ehb_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ilores_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -873,9 +944,10 @@ static void lts_ecs_ehb_ihires_dhires_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; + buf1 += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; } } } else { @@ -884,7 +956,6 @@ static void lts_ecs_ehb_ihires_dhires_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; c &= bplehb_mask; if (c <= 31) { col = xcolors[colors_ocs[c]]; @@ -892,6 +963,16 @@ static void lts_ecs_ehb_ihires_dhires_b1(int draw_start, int draw_end, int draw_ col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; } *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + cp += cpaddv; + *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -899,7 +980,11 @@ static void lts_ecs_ehb_ihires_dhires_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ham_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ilores_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -923,9 +1008,10 @@ static void lts_ecs_ham_ihires_dhires_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; + buf1 += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; } } } else { @@ -934,9 +1020,13 @@ static void lts_ecs_ham_ihires_dhires_b1(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = decode_ham_pixel_fast(c, colors_ocs); *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + cp += cpaddv; + *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -944,9 +1034,67 @@ static void lts_ecs_ham_ihires_dhires_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_kehb_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ilores_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { - uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + lts_null(); +} +static void lts_ecs_kehb_ilores_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + cp += cpaddv; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_kehb_ilores_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; int cpaddv = 1 << cpadd; int end = draw_end; @@ -979,8 +1127,8 @@ static void lts_ecs_kehb_ihires_dhires_b1(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; cp += cpaddv; - col = xcolors[colors_ocs[c & 31]]; *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { @@ -989,7 +1137,11 @@ static void lts_ecs_kehb_ihires_dhires_b1(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_ecs_n_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ihires_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1020,11 +1172,16 @@ static void lts_ecs_n_ishres_dhires_b1(int draw_start, int draw_end, int draw_st } } else { bpl = true; - uae_u8 c0 = *cp++; - uae_u8 c1 = *cp++; - uae_u32 dpix_val0, dpix_val1; - get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); - *buf1++ = dpix_val0; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + cp += cpaddv; + *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1032,7 +1189,11 @@ static void lts_ecs_n_ishres_dhires_b1(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_ecs_dpf_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ihires_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1063,11 +1224,18 @@ static void lts_ecs_dpf_ishres_dhires_b1(int draw_start, int draw_end, int draw_ } } else { bpl = true; - uae_u8 c0 = *cp++; - uae_u8 c1 = *cp++; - uae_u32 dpix_val0, dpix_val1; - get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); - *buf1++ = dpix_val0; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + cp += cpaddv; + *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1075,7 +1243,11 @@ static void lts_ecs_dpf_ishres_dhires_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ehb_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ihires_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1106,11 +1278,13 @@ static void lts_ecs_ehb_ishres_dhires_b1(int draw_start, int draw_end, int draw_ } } else { bpl = true; - uae_u8 c0 = *cp++; - uae_u8 c1 = *cp++; - uae_u32 dpix_val0, dpix_val1; - get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); - *buf1++ = dpix_val0; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + cp += cpaddv; + *buf1++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1118,7 +1292,60 @@ static void lts_ecs_ehb_ishres_dhires_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ham_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ihires_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ihires_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + cp += cpaddv; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_kehb_ihires_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1161,7 +1388,7 @@ static void lts_ecs_ham_ishres_dhires_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_kehb_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ishres_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1204,7 +1431,7 @@ static void lts_ecs_kehb_ishres_dhires_b1(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_ecs_n_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1228,35 +1455,18 @@ static void lts_ecs_n_ilores_dshres_b1(int draw_start, int draw_end, int draw_st if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - col = xcolors[colors_ocs[c]]; - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - col = xcolors[colors_ocs[c]]; - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - col = xcolors[colors_ocs[c]]; - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpaddv; - col = xcolors[colors_ocs[c]]; - *buf1++ = col; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); + *buf1++ = dpix_val0; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1264,7 +1474,7 @@ static void lts_ecs_n_ilores_dshres_b1(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_ecs_dpf_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ishres_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1288,47 +1498,18 @@ static void lts_ecs_dpf_ilores_dshres_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpaddv; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } - *buf1++ = col; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); + *buf1++ = dpix_val0; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1336,7 +1517,7 @@ static void lts_ecs_dpf_ilores_dshres_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ehb_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1360,55 +1541,1014 @@ static void lts_ecs_ehb_ilores_dshres_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); + *buf1++ = dpix_val0; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_ehb_ishres_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); + *buf1++ = dpix_val0; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_ham_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); + *buf1++ = dpix_val0; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_ham_ishres_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); + *buf1++ = dpix_val0; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_kehb_ishres_dhires_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); + *buf1++ = dpix_val0; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_kehb_ishres_dhires_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); + *buf1++ = dpix_val0; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_n_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + cp += cpaddv; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_n_ilores_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + cp += cpaddv; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_dpf_ilores_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + cp += cpaddv; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_ehb_ilores_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + cp += cpaddv; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_ham_ilores_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + cp += cpaddv; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_kehb_ilores_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + cp += cpaddv; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_n_ihires_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + cp += cpaddv; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_dpf_ihires_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + cp += cpaddv; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_ehb_ihires_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + cp += cpaddv; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_ham_ihires_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + *buf1++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + cp += cpaddv; + *buf1++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_kehb_ihires_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); + *buf1++ = dpix_val0; + *buf1++ = dpix_val1; + cnt += bufaddv; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_n_ishres_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + } else { + *buf1++ = bgcolor; + } + } + } else { + bpl = true; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); + *buf1++ = dpix_val0; + *buf1++ = dpix_val1; + cnt += bufaddv; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_dpf_ishres_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpaddv; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } - *buf1++ = col; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); + *buf1++ = dpix_val0; + *buf1++ = dpix_val1; + cnt += bufaddv; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1416,7 +2556,11 @@ static void lts_ecs_ehb_ilores_dshres_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ham_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ishres_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1440,35 +2584,20 @@ static void lts_ecs_ham_ilores_dshres_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - col = decode_ham_pixel_fast(c, colors_ocs); - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - col = decode_ham_pixel_fast(c, colors_ocs); - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - col = decode_ham_pixel_fast(c, colors_ocs); - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpaddv; - col = decode_ham_pixel_fast(c, colors_ocs); - *buf1++ = col; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); + *buf1++ = dpix_val0; + *buf1++ = dpix_val1; + cnt += bufaddv; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1476,7 +2605,11 @@ static void lts_ecs_ham_ilores_dshres_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_kehb_ilores_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ishres_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1500,35 +2633,20 @@ static void lts_ecs_kehb_ilores_dshres_b1(int draw_start, int draw_end, int draw if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; + buf1++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; } } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - col = xcolors[colors_ocs[c & 31]]; - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - col = xcolors[colors_ocs[c & 31]]; - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - col = xcolors[colors_ocs[c & 31]]; - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpaddv; - col = xcolors[colors_ocs[c & 31]]; - *buf1++ = col; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); + *buf1++ = dpix_val0; + *buf1++ = dpix_val1; + cnt += bufaddv; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1536,7 +2654,11 @@ static void lts_ecs_kehb_ilores_dshres_b1(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_ecs_n_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ishres_dshres_b1_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1560,10 +2682,11 @@ static void lts_ecs_n_ihires_dshres_b1(int draw_start, int draw_end, int draw_st if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; + buf2++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { @@ -1573,12 +2696,9 @@ static void lts_ecs_n_ihires_dshres_b1(int draw_start, int draw_end, int draw_st c = *cp; clxdat |= bplcoltable[c]; col = xcolors[colors_ocs[c]]; - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - col = xcolors[colors_ocs[c]]; *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1586,7 +2706,11 @@ static void lts_ecs_n_ihires_dshres_b1(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_ecs_dpf_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ilores_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1610,10 +2734,11 @@ static void lts_ecs_dpf_ihires_dshres_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; + buf2++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { @@ -1626,15 +2751,9 @@ static void lts_ecs_dpf_ihires_dshres_b1(int draw_start, int draw_end, int draw_ uae_u8 dpval = dpf_lookup[c]; col = xcolors[colors_ocs[dpval]]; } - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1642,7 +2761,11 @@ static void lts_ecs_dpf_ihires_dshres_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ehb_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ilores_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1666,10 +2789,11 @@ static void lts_ecs_ehb_ihires_dshres_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; + buf2++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { @@ -1684,17 +2808,9 @@ static void lts_ecs_ehb_ihires_dshres_b1(int draw_start, int draw_end, int draw_ } else { col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; } - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1702,7 +2818,11 @@ static void lts_ecs_ehb_ihires_dshres_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ham_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ilores_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1726,10 +2846,11 @@ static void lts_ecs_ham_ihires_dshres_b1(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; + buf2++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { @@ -1739,12 +2860,9 @@ static void lts_ecs_ham_ihires_dshres_b1(int draw_start, int draw_end, int draw_ c = *cp; clxdat |= bplcoltable[c]; col = decode_ham_pixel_fast(c, colors_ocs); - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - col = decode_ham_pixel_fast(c, colors_ocs); *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1752,7 +2870,11 @@ static void lts_ecs_ham_ihires_dshres_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_kehb_ihires_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ilores_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1776,10 +2898,11 @@ static void lts_ecs_kehb_ihires_dshres_b1(int draw_start, int draw_end, int draw if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; + buf1++; + buf2++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { @@ -1789,12 +2912,9 @@ static void lts_ecs_kehb_ihires_dshres_b1(int draw_start, int draw_end, int draw c = *cp; clxdat |= bplcoltable[c]; col = xcolors[colors_ocs[c & 31]]; - *buf1++ = col; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - col = xcolors[colors_ocs[c & 31]]; *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1802,7 +2922,11 @@ static void lts_ecs_kehb_ihires_dshres_b1(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_ecs_n_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ilores_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1827,19 +2951,24 @@ static void lts_ecs_n_ishres_dshres_b1(int draw_start, int draw_end, int draw_st if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { bpl = true; - uae_u8 c0 = *cp++; - uae_u8 c1 = *cp++; - uae_u32 dpix_val0, dpix_val1; - get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); - *buf1++ = dpix_val0; - *buf1++ = dpix_val1; - cnt += bufaddv; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1847,7 +2976,7 @@ static void lts_ecs_n_ishres_dshres_b1(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_ecs_dpf_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ihires_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1872,19 +3001,27 @@ static void lts_ecs_dpf_ishres_dshres_b1(int draw_start, int draw_end, int draw_ if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { bpl = true; - uae_u8 c0 = *cp++; - uae_u8 c1 = *cp++; - uae_u32 dpix_val0, dpix_val1; - get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); - *buf1++ = dpix_val0; - *buf1++ = dpix_val1; - cnt += bufaddv; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + colf = xcolors[colors_ocs[c]]; + col = filter_pixel(col, colf); + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1892,7 +3029,7 @@ static void lts_ecs_dpf_ishres_dshres_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ehb_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1917,19 +3054,27 @@ static void lts_ecs_ehb_ishres_dshres_b1(int draw_start, int draw_end, int draw_ if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; } } - } else { - bpl = true; - uae_u8 c0 = *cp++; - uae_u8 c1 = *cp++; - uae_u32 dpix_val0, dpix_val1; - get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); - *buf1++ = dpix_val0; - *buf1++ = dpix_val1; - cnt += bufaddv; + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1937,7 +3082,7 @@ static void lts_ecs_ehb_ishres_dshres_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ham_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ihires_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1962,19 +3107,33 @@ static void lts_ecs_ham_ishres_dshres_b1(int draw_start, int draw_end, int draw_ if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { bpl = true; - uae_u8 c0 = *cp++; - uae_u8 c1 = *cp++; - uae_u32 dpix_val0, dpix_val1; - get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); - *buf1++ = dpix_val0; - *buf1++ = dpix_val1; - cnt += bufaddv; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + { + uae_u8 dpval = dpf_lookup[c]; + colf = xcolors[colors_ocs[dpval]]; + } + col = filter_pixel(col, colf); + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1982,7 +3141,7 @@ static void lts_ecs_ham_ishres_dshres_b1(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_kehb_ishres_dshres_b1(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2007,19 +3166,29 @@ static void lts_ecs_kehb_ishres_dshres_b1(int draw_start, int draw_end, int draw if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; } } } else { bpl = true; - uae_u8 c0 = *cp++; - uae_u8 c1 = *cp++; - uae_u32 dpix_val0, dpix_val1; - get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); - *buf1++ = dpix_val0; - *buf1++ = dpix_val1; - cnt += bufaddv; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2027,7 +3196,7 @@ static void lts_ecs_kehb_ishres_dshres_b1(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_ecs_n_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ihires_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2064,8 +3233,23 @@ static void lts_ecs_n_ilores_dlores_b2(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c &= bplehb_mask; + if (c <= 31) { + colf = xcolors[colors_ocs[c]]; + } else { + colf = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + col = filter_pixel(col, colf); cp += cpaddv; - col = xcolors[colors_ocs[c]]; *buf1++ = col; *buf2++ = col; } @@ -2075,7 +3259,7 @@ static void lts_ecs_n_ilores_dlores_b2(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_ecs_dpf_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2112,11 +3296,10 @@ static void lts_ecs_dpf_ilores_dlores_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + c = cp[1]; + clxdat |= bplcoltable[c]; cp += cpaddv; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } *buf1++ = col; *buf2++ = col; } @@ -2126,7 +3309,7 @@ static void lts_ecs_dpf_ilores_dlores_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ehb_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ihires_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2163,13 +3346,13 @@ static void lts_ecs_ehb_ilores_dlores_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + colf = decode_ham_pixel_fast(c, colors_ocs); + col = filter_pixel(col, colf); cp += cpaddv; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } *buf1++ = col; *buf2++ = col; } @@ -2179,7 +3362,7 @@ static void lts_ecs_ehb_ilores_dlores_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ham_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2216,8 +3399,10 @@ static void lts_ecs_ham_ilores_dlores_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + c = cp[1]; + clxdat |= bplcoltable[c]; cp += cpaddv; - col = decode_ham_pixel_fast(c, colors_ocs); *buf1++ = col; *buf2++ = col; } @@ -2227,7 +3412,7 @@ static void lts_ecs_ham_ilores_dlores_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_kehb_ilores_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ihires_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2264,8 +3449,13 @@ static void lts_ecs_kehb_ilores_dlores_b2(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c & 31]]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + colf = xcolors[colors_ocs[c & 31]]; + col = filter_pixel(col, colf); + cp += cpaddv; *buf1++ = col; *buf2++ = col; } @@ -2275,7 +3465,47 @@ static void lts_ecs_kehb_ilores_dlores_b2(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_ecs_n_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ishres_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ishres_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ishres_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ishres_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ishres_dlores_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2299,10 +3529,12 @@ static void lts_ecs_n_ihires_dlores_b2(int draw_start, int draw_end, int draw_st if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; + buf1 += 2; + buf2 += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf2++ = bgcolor; *buf2++ = bgcolor; } } @@ -2312,10 +3544,15 @@ static void lts_ecs_n_ihires_dlores_b2(int draw_start, int draw_end, int draw_st uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c]]; *buf1++ = col; *buf2++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2323,7 +3560,11 @@ static void lts_ecs_n_ihires_dlores_b2(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_ecs_dpf_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ilores_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2347,10 +3588,12 @@ static void lts_ecs_dpf_ihires_dlores_b2(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; + buf1 += 2; + buf2 += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf2++ = bgcolor; *buf2++ = bgcolor; } } @@ -2360,13 +3603,21 @@ static void lts_ecs_dpf_ihires_dlores_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; { uae_u8 dpval = dpf_lookup[c]; col = xcolors[colors_ocs[dpval]]; } *buf1++ = col; *buf2++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2374,7 +3625,11 @@ static void lts_ecs_dpf_ihires_dlores_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ehb_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ilores_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2398,11 +3653,13 @@ static void lts_ecs_ehb_ihires_dlores_b2(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; + buf1 += 2; + buf2 += 2; } else { + *buf1++ = bgcolor; *buf1++ = bgcolor; *buf2++ = bgcolor; + *buf2++ = bgcolor; } } } else { @@ -2411,7 +3668,6 @@ static void lts_ecs_ehb_ihires_dlores_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; c &= bplehb_mask; if (c <= 31) { col = xcolors[colors_ocs[c]]; @@ -2420,6 +3676,17 @@ static void lts_ecs_ehb_ihires_dlores_b2(int draw_start, int draw_end, int draw_ } *buf1++ = col; *buf2++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2427,7 +3694,11 @@ static void lts_ecs_ehb_ihires_dlores_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ham_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ilores_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2451,10 +3722,12 @@ static void lts_ecs_ham_ihires_dlores_b2(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; + buf1 += 2; + buf2 += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf2++ = bgcolor; *buf2++ = bgcolor; } } @@ -2464,10 +3737,15 @@ static void lts_ecs_ham_ihires_dlores_b2(int draw_start, int draw_end, int draw_ uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = decode_ham_pixel_fast(c, colors_ocs); *buf1++ = col; *buf2++ = col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2475,7 +3753,11 @@ static void lts_ecs_ham_ihires_dlores_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_kehb_ihires_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ilores_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2499,10 +3781,12 @@ static void lts_ecs_kehb_ihires_dlores_b2(int draw_start, int draw_end, int draw if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; + buf1 += 2; + buf2 += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf2++ = bgcolor; *buf2++ = bgcolor; } } @@ -2512,38 +3796,27 @@ static void lts_ecs_kehb_ihires_dlores_b2(int draw_start, int draw_end, int draw uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c & 31]]; *buf1++ = col; *buf2++ = col; - } - if (cnt >= bpl1dat_trigger_offset && !bpl) { + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; cp += cpaddv; - } - cnt += bufaddv; - } -} -static void lts_ecs_n_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_ecs_dpf_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_ecs_ehb_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_ecs_ham_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); + *buf1++ = col; + *buf2++ = col; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } } -static void lts_ecs_kehb_ishres_dlores_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ilores_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { lts_null(); } -static void lts_ecs_n_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2567,12 +3840,10 @@ static void lts_ecs_n_ilores_dhires_b2(int draw_start, int draw_end, int draw_st if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; + buf1++; + buf2++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf2++ = bgcolor; *buf2++ = bgcolor; } } @@ -2583,12 +3854,7 @@ static void lts_ecs_n_ilores_dhires_b2(int draw_start, int draw_end, int draw_st c = *cp; clxdat |= bplcoltable[c]; col = xcolors[colors_ocs[c]]; - *buf1++ = col; - *buf2++ = col; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - col = xcolors[colors_ocs[c]]; *buf1++ = col; *buf2++ = col; } @@ -2598,7 +3864,11 @@ static void lts_ecs_n_ilores_dhires_b2(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_ecs_dpf_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ihires_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2622,12 +3892,10 @@ static void lts_ecs_dpf_ilores_dhires_b2(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; + buf1++; + buf2++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf2++ = bgcolor; *buf2++ = bgcolor; } } @@ -2641,15 +3909,7 @@ static void lts_ecs_dpf_ilores_dhires_b2(int draw_start, int draw_end, int draw_ uae_u8 dpval = dpf_lookup[c]; col = xcolors[colors_ocs[dpval]]; } - *buf1++ = col; - *buf2++ = col; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } *buf1++ = col; *buf2++ = col; } @@ -2659,7 +3919,11 @@ static void lts_ecs_dpf_ilores_dhires_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ehb_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ihires_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2683,13 +3947,11 @@ static void lts_ecs_ehb_ilores_dhires_b2(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; + buf1++; + buf2++; } else { - *buf1++ = bgcolor; *buf1++ = bgcolor; *buf2++ = bgcolor; - *buf2++ = bgcolor; } } } else { @@ -2704,17 +3966,7 @@ static void lts_ecs_ehb_ilores_dhires_b2(int draw_start, int draw_end, int draw_ } else { col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; } - *buf1++ = col; - *buf2++ = col; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } *buf1++ = col; *buf2++ = col; } @@ -2724,7 +3976,11 @@ static void lts_ecs_ehb_ilores_dhires_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ham_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ihires_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2748,12 +4004,10 @@ static void lts_ecs_ham_ilores_dhires_b2(int draw_start, int draw_end, int draw_ if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; + buf1++; + buf2++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf2++ = bgcolor; *buf2++ = bgcolor; } } @@ -2764,12 +4018,7 @@ static void lts_ecs_ham_ilores_dhires_b2(int draw_start, int draw_end, int draw_ c = *cp; clxdat |= bplcoltable[c]; col = decode_ham_pixel_fast(c, colors_ocs); - *buf1++ = col; - *buf2++ = col; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - col = decode_ham_pixel_fast(c, colors_ocs); *buf1++ = col; *buf2++ = col; } @@ -2779,7 +4028,11 @@ static void lts_ecs_ham_ilores_dhires_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_kehb_ilores_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ihires_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2803,12 +4056,10 @@ static void lts_ecs_kehb_ilores_dhires_b2(int draw_start, int draw_end, int draw if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; + buf1++; + buf2++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf2++ = bgcolor; *buf2++ = bgcolor; } } @@ -2819,12 +4070,7 @@ static void lts_ecs_kehb_ilores_dhires_b2(int draw_start, int draw_end, int draw c = *cp; clxdat |= bplcoltable[c]; col = xcolors[colors_ocs[c & 31]]; - *buf1++ = col; - *buf2++ = col; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - col = xcolors[colors_ocs[c & 31]]; *buf1++ = col; *buf2++ = col; } @@ -2834,7 +4080,11 @@ static void lts_ecs_kehb_ilores_dhires_b2(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_ecs_n_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ihires_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2867,14 +4117,12 @@ static void lts_ecs_n_ihires_dhires_b2(int draw_start, int draw_end, int draw_st } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpaddv; - col = xcolors[colors_ocs[c]]; - *buf1++ = col; - *buf2++ = col; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); + *buf1++ = dpix_val0; + *buf2++ = dpix_val0; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2882,7 +4130,7 @@ static void lts_ecs_n_ihires_dhires_b2(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_ecs_dpf_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ishres_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2915,17 +4163,12 @@ static void lts_ecs_dpf_ihires_dhires_b2(int draw_start, int draw_end, int draw_ } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpaddv; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } - *buf1++ = col; - *buf2++ = col; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); + *buf1++ = dpix_val0; + *buf2++ = dpix_val0; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2933,7 +4176,7 @@ static void lts_ecs_dpf_ihires_dhires_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ehb_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2966,19 +4209,12 @@ static void lts_ecs_ehb_ihires_dhires_b2(int draw_start, int draw_end, int draw_ } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpaddv; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } - *buf1++ = col; - *buf2++ = col; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); + *buf1++ = dpix_val0; + *buf2++ = dpix_val0; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2986,7 +4222,7 @@ static void lts_ecs_ehb_ihires_dhires_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ham_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ishres_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3019,14 +4255,12 @@ static void lts_ecs_ham_ihires_dhires_b2(int draw_start, int draw_end, int draw_ } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpaddv; - col = decode_ham_pixel_fast(c, colors_ocs); - *buf1++ = col; - *buf2++ = col; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); + *buf1++ = dpix_val0; + *buf2++ = dpix_val0; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -3034,7 +4268,7 @@ static void lts_ecs_ham_ihires_dhires_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_kehb_ihires_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3067,14 +4301,12 @@ static void lts_ecs_kehb_ihires_dhires_b2(int draw_start, int draw_end, int draw } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpaddv; - col = xcolors[colors_ocs[c & 31]]; - *buf1++ = col; - *buf2++ = col; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + get_shres_pix(c0, c1, &dpix_val0, &dpix_val1); + *buf1++ = dpix_val0; + *buf2++ = dpix_val0; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -3082,7 +4314,7 @@ static void lts_ecs_kehb_ihires_dhires_b2(int draw_start, int draw_end, int draw cnt += bufaddv; } } -static void lts_ecs_n_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ishres_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3128,7 +4360,7 @@ static void lts_ecs_n_ishres_dhires_b2(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } -static void lts_ecs_dpf_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3174,7 +4406,7 @@ static void lts_ecs_dpf_ishres_dhires_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ehb_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ishres_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3220,7 +4452,7 @@ static void lts_ecs_ehb_ishres_dhires_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_ham_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3266,7 +4498,7 @@ static void lts_ecs_ham_ishres_dhires_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } -static void lts_ecs_kehb_ishres_dhires_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ishres_dhires_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3370,8 +4602,8 @@ static void lts_ecs_n_ilores_dshres_b2(int draw_start, int draw_end, int draw_st *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c]]; + cp += cpaddv; *buf1++ = col; *buf2++ = col; } @@ -3381,6 +4613,10 @@ static void lts_ecs_n_ilores_dshres_b2(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } +static void lts_ecs_n_ilores_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_dpf_ilores_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -3448,11 +4684,11 @@ static void lts_ecs_dpf_ilores_dshres_b2(int draw_start, int draw_end, int draw_ *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; { uae_u8 dpval = dpf_lookup[c]; col = xcolors[colors_ocs[dpval]]; } + cp += cpaddv; *buf1++ = col; *buf2++ = col; } @@ -3462,6 +4698,10 @@ static void lts_ecs_dpf_ilores_dshres_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_ecs_dpf_ilores_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_ehb_ilores_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -3535,13 +4775,13 @@ static void lts_ecs_ehb_ilores_dshres_b2(int draw_start, int draw_end, int draw_ *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; c &= bplehb_mask; if (c <= 31) { col = xcolors[colors_ocs[c]]; } else { col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; } + cp += cpaddv; *buf1++ = col; *buf2++ = col; } @@ -3551,6 +4791,10 @@ static void lts_ecs_ehb_ilores_dshres_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_ecs_ehb_ilores_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_ham_ilores_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -3609,8 +4853,8 @@ static void lts_ecs_ham_ilores_dshres_b2(int draw_start, int draw_end, int draw_ *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = decode_ham_pixel_fast(c, colors_ocs); + cp += cpaddv; *buf1++ = col; *buf2++ = col; } @@ -3620,6 +4864,10 @@ static void lts_ecs_ham_ilores_dshres_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_ecs_ham_ilores_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_kehb_ilores_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -3678,8 +4926,8 @@ static void lts_ecs_kehb_ilores_dshres_b2(int draw_start, int draw_end, int draw *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c & 31]]; + cp += cpaddv; *buf1++ = col; *buf2++ = col; } @@ -3689,6 +4937,10 @@ static void lts_ecs_kehb_ilores_dshres_b2(int draw_start, int draw_end, int draw cnt += bufaddv; } } +static void lts_ecs_kehb_ilores_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_n_ihires_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -3733,8 +4985,8 @@ static void lts_ecs_n_ihires_dshres_b2(int draw_start, int draw_end, int draw_st *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c]]; + cp += cpaddv; *buf1++ = col; *buf2++ = col; } @@ -3744,6 +4996,10 @@ static void lts_ecs_n_ihires_dshres_b2(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } +static void lts_ecs_n_ihires_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_dpf_ihires_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -3791,11 +5047,11 @@ static void lts_ecs_dpf_ihires_dshres_b2(int draw_start, int draw_end, int draw_ *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; { uae_u8 dpval = dpf_lookup[c]; col = xcolors[colors_ocs[dpval]]; } + cp += cpaddv; *buf1++ = col; *buf2++ = col; } @@ -3805,6 +5061,10 @@ static void lts_ecs_dpf_ihires_dshres_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_ecs_dpf_ihires_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_ehb_ihires_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -3854,13 +5114,13 @@ static void lts_ecs_ehb_ihires_dshres_b2(int draw_start, int draw_end, int draw_ *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; c &= bplehb_mask; if (c <= 31) { col = xcolors[colors_ocs[c]]; } else { col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; } + cp += cpaddv; *buf1++ = col; *buf2++ = col; } @@ -3870,6 +5130,10 @@ static void lts_ecs_ehb_ihires_dshres_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_ecs_ehb_ihires_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_ham_ihires_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -3914,8 +5178,8 @@ static void lts_ecs_ham_ihires_dshres_b2(int draw_start, int draw_end, int draw_ *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = decode_ham_pixel_fast(c, colors_ocs); + cp += cpaddv; *buf1++ = col; *buf2++ = col; } @@ -3925,6 +5189,10 @@ static void lts_ecs_ham_ihires_dshres_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_ecs_ham_ihires_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_kehb_ihires_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -3969,8 +5237,8 @@ static void lts_ecs_kehb_ihires_dshres_b2(int draw_start, int draw_end, int draw *buf2++ = col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c & 31]]; + cp += cpaddv; *buf1++ = col; *buf2++ = col; } @@ -3980,6 +5248,10 @@ static void lts_ecs_kehb_ihires_dshres_b2(int draw_start, int draw_end, int draw cnt += bufaddv; } } +static void lts_ecs_kehb_ihires_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_n_ishres_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -4029,6 +5301,10 @@ static void lts_ecs_n_ishres_dshres_b2(int draw_start, int draw_end, int draw_st cnt += bufaddv; } } +static void lts_ecs_n_ishres_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_dpf_ishres_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -4078,6 +5354,10 @@ static void lts_ecs_dpf_ishres_dshres_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_ecs_dpf_ishres_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_ehb_ishres_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -4127,6 +5407,10 @@ static void lts_ecs_ehb_ishres_dshres_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_ecs_ehb_ishres_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_ham_ishres_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -4176,6 +5460,10 @@ static void lts_ecs_ham_ishres_dshres_b2(int draw_start, int draw_end, int draw_ cnt += bufaddv; } } +static void lts_ecs_ham_ishres_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_kehb_ishres_dshres_b2(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -4225,6 +5513,10 @@ static void lts_ecs_kehb_ishres_dshres_b2(int draw_start, int draw_end, int draw cnt += bufaddv; } } +static void lts_ecs_kehb_ishres_dshres_b2_filtered(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static LINETOSRC_FUNCF linetoscr_ecs_fast_funcs[] = { lts_ecs_n_ilores_dlores_b1, lts_ecs_dpf_ilores_dlores_b1, @@ -4318,3 +5610,96 @@ static LINETOSRC_FUNCF linetoscr_ecs_fast_funcs[] = { lts_ecs_kehb_ishres_dshres_b2, NULL }; +static LINETOSRC_FUNCF linetoscr_ecs_fast_funcs_filtered[] = { + NULL, + NULL, + NULL, + NULL, + NULL, + lts_ecs_n_ihires_dlores_b1_filtered, + lts_ecs_dpf_ihires_dlores_b1_filtered, + lts_ecs_ehb_ihires_dlores_b1_filtered, + lts_ecs_ham_ihires_dlores_b1_filtered, + lts_ecs_kehb_ihires_dlores_b1_filtered, + lts_ecs_n_ishres_dlores_b1_filtered, + lts_ecs_dpf_ishres_dlores_b1_filtered, + lts_ecs_ehb_ishres_dlores_b1_filtered, + lts_ecs_ham_ishres_dlores_b1_filtered, + lts_ecs_kehb_ishres_dlores_b1_filtered, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_ecs_n_ishres_dhires_b1_filtered, + lts_ecs_dpf_ishres_dhires_b1_filtered, + lts_ecs_ehb_ishres_dhires_b1_filtered, + lts_ecs_ham_ishres_dhires_b1_filtered, + lts_ecs_kehb_ishres_dhires_b1_filtered, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_ecs_n_ihires_dlores_b2_filtered, + lts_ecs_dpf_ihires_dlores_b2_filtered, + lts_ecs_ehb_ihires_dlores_b2_filtered, + lts_ecs_ham_ihires_dlores_b2_filtered, + lts_ecs_kehb_ihires_dlores_b2_filtered, + lts_ecs_n_ishres_dlores_b2_filtered, + lts_ecs_dpf_ishres_dlores_b2_filtered, + lts_ecs_ehb_ishres_dlores_b2_filtered, + lts_ecs_ham_ishres_dlores_b2_filtered, + lts_ecs_kehb_ishres_dlores_b2_filtered, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_ecs_n_ishres_dhires_b2_filtered, + lts_ecs_dpf_ishres_dhires_b2_filtered, + lts_ecs_ehb_ishres_dhires_b2_filtered, + lts_ecs_ham_ishres_dhires_b2_filtered, + lts_ecs_kehb_ishres_dhires_b2_filtered, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +}; diff --git a/linetoscr_ecs_genlock_fast.cpp b/linetoscr_ecs_genlock_fast.cpp index 254451bb..7aa0be55 100644 --- a/linetoscr_ecs_genlock_fast.cpp +++ b/linetoscr_ecs_genlock_fast.cpp @@ -42,8 +42,8 @@ static void lts_ecs_n_ilores_dlores_b1_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c]]; + cp += cpaddv; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -54,6 +54,10 @@ static void lts_ecs_n_ilores_dlores_b1_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } +static void lts_ecs_n_ilores_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_dpf_ilores_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -92,11 +96,11 @@ static void lts_ecs_dpf_ilores_dlores_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; { uae_u8 dpval = dpf_lookup[c]; col = xcolors[colors_ocs[dpval]]; } + cp += cpaddv; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -107,6 +111,10 @@ static void lts_ecs_dpf_ilores_dlores_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_ecs_dpf_ilores_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_ehb_ilores_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -145,13 +153,13 @@ static void lts_ecs_ehb_ilores_dlores_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; c &= bplehb_mask; if (c <= 31) { col = xcolors[colors_ocs[c]]; } else { col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; } + cp += cpaddv; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -162,6 +170,10 @@ static void lts_ecs_ehb_ilores_dlores_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_ecs_ehb_ilores_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_ham_ilores_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -200,8 +212,8 @@ static void lts_ecs_ham_ilores_dlores_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = decode_ham_pixel_fast(c, colors_ocs); + cp += cpaddv; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -212,6 +224,10 @@ static void lts_ecs_ham_ilores_dlores_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_ecs_ham_ilores_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_kehb_ilores_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -250,8 +266,8 @@ static void lts_ecs_kehb_ilores_dlores_b1_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c & 31]]; + cp += cpaddv; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -262,6 +278,10 @@ static void lts_ecs_kehb_ilores_dlores_b1_genlock(int draw_start, int draw_end, cnt += bufaddv; } } +static void lts_ecs_kehb_ilores_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_n_ihires_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -300,8 +320,10 @@ static void lts_ecs_n_ihires_dlores_b1_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c]]; + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpaddv; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -312,7 +334,7 @@ static void lts_ecs_n_ihires_dlores_b1_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_ecs_dpf_ihires_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ihires_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -350,11 +372,13 @@ static void lts_ecs_dpf_ihires_dlores_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + colf = xcolors[colors_ocs[c]]; + col = filter_pixel(col, colf); cp += cpaddv; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -365,7 +389,7 @@ static void lts_ecs_dpf_ihires_dlores_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ehb_ihires_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ihires_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -403,13 +427,13 @@ static void lts_ecs_ehb_ihires_dlores_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpaddv; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -420,7 +444,7 @@ static void lts_ecs_ehb_ihires_dlores_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ham_ihires_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ihires_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -458,8 +482,19 @@ static void lts_ecs_ham_ihires_dlores_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + { + uae_u8 dpval = dpf_lookup[c]; + colf = xcolors[colors_ocs[dpval]]; + } + col = filter_pixel(col, colf); cp += cpaddv; - col = decode_ham_pixel_fast(c, colors_ocs); *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -470,7 +505,7 @@ static void lts_ecs_ham_ihires_dlores_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_kehb_ihires_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ihires_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -508,8 +543,15 @@ static void lts_ecs_kehb_ihires_dlores_b1_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; cp += cpaddv; - col = xcolors[colors_ocs[c & 31]]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -520,27 +562,7 @@ static void lts_ecs_kehb_ihires_dlores_b1_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_ecs_n_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_ecs_dpf_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_ecs_ehb_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_ecs_ham_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_ecs_kehb_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_ecs_n_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ihires_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -565,13 +587,11 @@ static void lts_ecs_n_ilores_dhires_b1_genlock(int draw_start, int draw_end, int if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + gbuf++; } else { - *buf1++ = bgcolor; *buf1++ = bgcolor; *gbuf++ = gpix; - *gbuf++ = gpix; } } } else { @@ -580,14 +600,23 @@ static void lts_ecs_n_ilores_dhires_b1_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - col = xcolors[colors_ocs[c]]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + c = cp[1]; clxdat |= bplcoltable[c]; + uae_u32 colf; + c &= bplehb_mask; + if (c <= 31) { + colf = xcolors[colors_ocs[c]]; + } else { + colf = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + col = filter_pixel(col, colf); cp += cpaddv; - col = xcolors[colors_ocs[c]]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -598,7 +627,7 @@ static void lts_ecs_n_ilores_dhires_b1_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_ecs_dpf_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ihires_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -623,13 +652,11 @@ static void lts_ecs_dpf_ilores_dhires_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + gbuf++; } else { - *buf1++ = bgcolor; *buf1++ = bgcolor; *gbuf++ = gpix; - *gbuf++ = gpix; } } } else { @@ -638,20 +665,10 @@ static void lts_ecs_dpf_ilores_dhires_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; + col = decode_ham_pixel_fast(c, colors_ocs); + c = cp[1]; clxdat |= bplcoltable[c]; cp += cpaddv; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -662,7 +679,7 @@ static void lts_ecs_dpf_ilores_dhires_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ihires_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -687,13 +704,11 @@ static void lts_ecs_ehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + gbuf++; } else { - *buf1++ = bgcolor; *buf1++ = bgcolor; *gbuf++ = gpix; - *gbuf++ = gpix; } } } else { @@ -702,24 +717,13 @@ static void lts_ecs_ehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; + col = decode_ham_pixel_fast(c, colors_ocs); + c = cp[1]; clxdat |= bplcoltable[c]; + uae_u32 colf; + colf = decode_ham_pixel_fast(c, colors_ocs); + col = filter_pixel(col, colf); cp += cpaddv; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -730,7 +734,7 @@ static void lts_ecs_ehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ham_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ihires_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -755,12 +759,10 @@ static void lts_ecs_ham_ilores_dhires_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -770,14 +772,10 @@ static void lts_ecs_ham_ilores_dhires_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - col = decode_ham_pixel_fast(c, colors_ocs); - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; + col = xcolors[colors_ocs[c & 31]]; + c = cp[1]; clxdat |= bplcoltable[c]; cp += cpaddv; - col = decode_ham_pixel_fast(c, colors_ocs); *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -788,7 +786,7 @@ static void lts_ecs_ham_ilores_dhires_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_kehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ihires_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -813,12 +811,10 @@ static void lts_ecs_kehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -829,13 +825,12 @@ static void lts_ecs_kehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, c = *cp; clxdat |= bplcoltable[c]; col = xcolors[colors_ocs[c & 31]]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; + c = cp[1]; clxdat |= bplcoltable[c]; + uae_u32 colf; + colf = xcolors[colors_ocs[c & 31]]; + col = filter_pixel(col, colf); cp += cpaddv; - col = xcolors[colors_ocs[c & 31]]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -846,7 +841,47 @@ static void lts_ecs_kehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_ecs_n_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ishres_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ishres_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ishres_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ishres_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ishres_dlores_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ishres_dlores_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -871,10 +906,12 @@ static void lts_ecs_n_ihires_dhires_b1_genlock(int draw_start, int draw_end, int if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - gbuf++; + buf1 += 2; + gbuf += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -884,11 +921,17 @@ static void lts_ecs_n_ihires_dhires_b1_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c]]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -896,7 +939,11 @@ static void lts_ecs_n_ihires_dhires_b1_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_ecs_dpf_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ilores_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -921,11 +968,13 @@ static void lts_ecs_dpf_ihires_dhires_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - gbuf++; + buf1 += 2; + gbuf += 2; } else { + *buf1++ = bgcolor; *buf1++ = bgcolor; *gbuf++ = gpix; + *gbuf++ = gpix; } } } else { @@ -934,7 +983,6 @@ static void lts_ecs_dpf_ihires_dhires_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; { uae_u8 dpval = dpf_lookup[c]; col = xcolors[colors_ocs[dpval]]; @@ -942,6 +990,16 @@ static void lts_ecs_dpf_ihires_dhires_b1_genlock(int draw_start, int draw_end, i *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -949,7 +1007,11 @@ static void lts_ecs_dpf_ihires_dhires_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ilores_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -974,11 +1036,13 @@ static void lts_ecs_ehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - gbuf++; + buf1 += 2; + gbuf += 2; } else { + *buf1++ = bgcolor; *buf1++ = bgcolor; *gbuf++ = gpix; + *gbuf++ = gpix; } } } else { @@ -987,7 +1051,6 @@ static void lts_ecs_ehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; c &= bplehb_mask; if (c <= 31) { col = xcolors[colors_ocs[c]]; @@ -997,6 +1060,18 @@ static void lts_ecs_ehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, i *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1004,7 +1079,11 @@ static void lts_ecs_ehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ham_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ilores_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1029,11 +1108,13 @@ static void lts_ecs_ham_ihires_dhires_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - gbuf++; + buf1 += 2; + gbuf += 2; } else { + *buf1++ = bgcolor; *buf1++ = bgcolor; *gbuf++ = gpix; + *gbuf++ = gpix; } } } else { @@ -1042,11 +1123,17 @@ static void lts_ecs_ham_ihires_dhires_b1_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = decode_ham_pixel_fast(c, colors_ocs); *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1054,7 +1141,73 @@ static void lts_ecs_ham_ihires_dhires_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_kehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ilores_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ilores_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + gbuf += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_kehb_ilores_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1092,8 +1245,8 @@ static void lts_ecs_kehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; cp += cpaddv; - col = xcolors[colors_ocs[c & 31]]; *buf1++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; @@ -1104,7 +1257,11 @@ static void lts_ecs_kehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_ecs_n_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ihires_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1138,13 +1295,18 @@ static void lts_ecs_n_ishres_dhires_b1_genlock(int draw_start, int draw_end, int } } else { bpl = true; - uae_u8 c0 = *cp++; - uae_u8 c1 = *cp++; - uae_u32 dpix_val0, dpix_val1; - uae_u8 gpix0, gpix1; - get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); - *buf1++ = dpix_val0; - *gbuf++ = gpix0; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1152,7 +1314,11 @@ static void lts_ecs_n_ishres_dhires_b1_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_ecs_dpf_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ihires_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1186,13 +1352,20 @@ static void lts_ecs_dpf_ishres_dhires_b1_genlock(int draw_start, int draw_end, i } } else { bpl = true; - uae_u8 c0 = *cp++; - uae_u8 c1 = *cp++; - uae_u32 dpix_val0, dpix_val1; - uae_u8 gpix0, gpix1; - get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); - *buf1++ = dpix_val0; - *gbuf++ = gpix0; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1200,7 +1373,11 @@ static void lts_ecs_dpf_ishres_dhires_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ehb_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ihires_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1234,13 +1411,15 @@ static void lts_ecs_ehb_ishres_dhires_b1_genlock(int draw_start, int draw_end, i } } else { bpl = true; - uae_u8 c0 = *cp++; - uae_u8 c1 = *cp++; - uae_u32 dpix_val0, dpix_val1; - uae_u8 gpix0, gpix1; - get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); - *buf1++ = dpix_val0; - *gbuf++ = gpix0; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1248,7 +1427,11 @@ static void lts_ecs_ehb_ishres_dhires_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ham_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ihires_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ihires_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1282,13 +1465,15 @@ static void lts_ecs_ham_ishres_dhires_b1_genlock(int draw_start, int draw_end, i } } else { bpl = true; - uae_u8 c0 = *cp++; - uae_u8 c1 = *cp++; - uae_u32 dpix_val0, dpix_val1; - uae_u8 gpix0, gpix1; - get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); - *buf1++ = dpix_val0; - *gbuf++ = gpix0; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1296,7 +1481,11 @@ static void lts_ecs_ham_ishres_dhires_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_kehb_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ihires_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1344,7 +1533,7 @@ static void lts_ecs_kehb_ishres_dhires_b1_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_ecs_n_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ishres_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1369,48 +1558,22 @@ static void lts_ecs_n_ilores_dshres_b1_genlock(int draw_start, int draw_end, int if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; - gbuf += 4; + buf1++; + gbuf++; } else { - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; *buf1++ = bgcolor; *gbuf++ = gpix; - *gbuf++ = gpix; - *gbuf++ = gpix; - *gbuf++ = gpix; } } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - col = xcolors[colors_ocs[c]]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - col = xcolors[colors_ocs[c]]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - col = xcolors[colors_ocs[c]]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpaddv; - col = xcolors[colors_ocs[c]]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *gbuf++ = gpix0; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1418,7 +1581,7 @@ static void lts_ecs_n_ilores_dshres_b1_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_ecs_dpf_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1443,60 +1606,22 @@ static void lts_ecs_dpf_ilores_dshres_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; - gbuf += 4; + buf1++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; - *gbuf++ = gpix; - *gbuf++ = gpix; *gbuf++ = gpix; } } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpaddv; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *gbuf++ = gpix0; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1504,7 +1629,7 @@ static void lts_ecs_dpf_ilores_dshres_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ishres_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1529,68 +1654,70 @@ static void lts_ecs_ehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; - gbuf += 4; + buf1++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; - *gbuf++ = gpix; - *gbuf++ = gpix; *gbuf++ = gpix; } } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *gbuf++ = gpix0; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + cnt += bufaddv; + } +} +static void lts_ecs_ehb_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; + } } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; + } else { + bpl = true; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *gbuf++ = gpix0; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1598,7 +1725,7 @@ static void lts_ecs_ehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ham_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ishres_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1623,48 +1750,22 @@ static void lts_ecs_ham_ilores_dshres_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; - gbuf += 4; + buf1++; + gbuf++; } else { - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; *buf1++ = bgcolor; *gbuf++ = gpix; - *gbuf++ = gpix; - *gbuf++ = gpix; - *gbuf++ = gpix; } } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - col = decode_ham_pixel_fast(c, colors_ocs); - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - col = decode_ham_pixel_fast(c, colors_ocs); - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - col = decode_ham_pixel_fast(c, colors_ocs); - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpaddv; - col = decode_ham_pixel_fast(c, colors_ocs); - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *gbuf++ = gpix0; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1672,7 +1773,7 @@ static void lts_ecs_ham_ilores_dshres_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_kehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1697,48 +1798,1185 @@ static void lts_ecs_kehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 4; - gbuf += 4; + buf1++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; - *gbuf++ = gpix; - *gbuf++ = gpix; *gbuf++ = gpix; } } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - col = xcolors[colors_ocs[c & 31]]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - col = xcolors[colors_ocs[c & 31]]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; - col = xcolors[colors_ocs[c & 31]]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *gbuf++ = gpix0; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; - col = xcolors[colors_ocs[c & 31]]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; + } + cnt += bufaddv; + } +} +static void lts_ecs_ham_ishres_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *gbuf++ = gpix0; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_kehb_ishres_dhires_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *gbuf++ = gpix0; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_kehb_ishres_dhires_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *gbuf++ = gpix0; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_n_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + gbuf += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_n_ilores_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + gbuf += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_dpf_ilores_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + gbuf += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_ehb_ilores_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + gbuf += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_ham_ilores_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 4; + gbuf += 4; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_kehb_ilores_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + gbuf += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_n_ihires_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + gbuf += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_dpf_ihires_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + gbuf += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_ehb_ihires_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + gbuf += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_ham_ihires_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1 += 2; + gbuf += 2; + } else { + *buf1++ = bgcolor; + *buf1++ = bgcolor; + *gbuf++ = gpix; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + cp += cpaddv; + *buf1++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_kehb_ihires_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *buf1++ = dpix_val1; + *gbuf++ = gpix0; + *gbuf++ = gpix1; + cnt += bufaddv; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_n_ishres_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *buf1++ = dpix_val1; + *gbuf++ = gpix0; + *gbuf++ = gpix1; + cnt += bufaddv; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_dpf_ishres_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *buf1++ = dpix_val1; + *gbuf++ = gpix0; + *gbuf++ = gpix1; + cnt += bufaddv; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_ehb_ishres_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *buf1++ = dpix_val1; + *gbuf++ = gpix0; + *gbuf++ = gpix1; + cnt += bufaddv; + } + if (cnt >= bpl1dat_trigger_offset && !bpl) { + cp += cpaddv; + } + cnt += bufaddv; + } +} +static void lts_ecs_ham_ishres_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; + int bufaddv = 1 << bufadd; + int cpaddv = 1 << cpadd; + uae_u8 gpix = get_genlock_transparency_border_fast(ls->bplcon3); + int end = draw_end; + if (end > hbstrt_offset) { + end = hbstrt_offset; + } + int cnt = draw_end; + if (cnt > draw_startoffset) { + cnt = draw_startoffset; + } + if (cnt > hbstop_offset) { + cnt = hbstop_offset; + } + if (cnt > bpl1dat_trigger_offset) { + cnt = bpl1dat_trigger_offset; + } + while (cnt < end) { + bool bpl = false; + if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { + if (cnt >= draw_startoffset) { + if (cnt < hbstop_offset) { + buf1++; + gbuf++; + } else { + *buf1++ = bgcolor; + *gbuf++ = gpix; + } + } + } else { + bpl = true; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *buf1++ = dpix_val1; + *gbuf++ = gpix0; + *gbuf++ = gpix1; + cnt += bufaddv; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -1746,7 +2984,11 @@ static void lts_ecs_kehb_ilores_dshres_b1_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_ecs_n_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ishres_dshres_b1_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1771,12 +3013,12 @@ static void lts_ecs_n_ihires_dshres_b1_genlock(int draw_start, int draw_end, int if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; + *buf2++ = bgcolor; *gbuf++ = gpix; } } @@ -1787,14 +3029,9 @@ static void lts_ecs_n_ihires_dshres_b1_genlock(int draw_start, int draw_end, int c = *cp; clxdat |= bplcoltable[c]; col = xcolors[colors_ocs[c]]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - col = xcolors[colors_ocs[c]]; *buf1++ = col; + *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; } @@ -1804,7 +3041,11 @@ static void lts_ecs_n_ihires_dshres_b1_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_ecs_dpf_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ilores_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1829,12 +3070,12 @@ static void lts_ecs_dpf_ihires_dshres_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; + *buf2++ = bgcolor; *gbuf++ = gpix; } } @@ -1848,17 +3089,9 @@ static void lts_ecs_dpf_ihires_dshres_b1_genlock(int draw_start, int draw_end, i uae_u8 dpval = dpf_lookup[c]; col = xcolors[colors_ocs[dpval]]; } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } *buf1++ = col; + *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; } @@ -1868,7 +3101,11 @@ static void lts_ecs_dpf_ihires_dshres_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ilores_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1893,12 +3130,12 @@ static void lts_ecs_ehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; + *buf2++ = bgcolor; *gbuf++ = gpix; } } @@ -1914,19 +3151,9 @@ static void lts_ecs_ehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, i } else { col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; } - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } *buf1++ = col; + *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; } @@ -1936,7 +3163,11 @@ static void lts_ecs_ehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ham_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ilores_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -1961,12 +3192,12 @@ static void lts_ecs_ham_ihires_dshres_b1_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; + *buf2++ = bgcolor; *gbuf++ = gpix; } } @@ -1977,14 +3208,9 @@ static void lts_ecs_ham_ihires_dshres_b1_genlock(int draw_start, int draw_end, i c = *cp; clxdat |= bplcoltable[c]; col = decode_ham_pixel_fast(c, colors_ocs); - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - col = decode_ham_pixel_fast(c, colors_ocs); *buf1++ = col; + *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; } @@ -1994,7 +3220,11 @@ static void lts_ecs_ham_ihires_dshres_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_kehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ilores_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2019,12 +3249,12 @@ static void lts_ecs_kehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *gbuf++ = gpix; + *buf2++ = bgcolor; *gbuf++ = gpix; } } @@ -2035,14 +3265,9 @@ static void lts_ecs_kehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, c = *cp; clxdat |= bplcoltable[c]; col = xcolors[colors_ocs[c & 31]]; - *buf1++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - col = xcolors[colors_ocs[c & 31]]; *buf1++ = col; + *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; } @@ -2052,7 +3277,11 @@ static void lts_ecs_kehb_ihires_dshres_b1_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_ecs_n_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ilores_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2078,24 +3307,28 @@ static void lts_ecs_n_ishres_dshres_b1_genlock(int draw_start, int draw_end, int if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; gbuf++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; *gbuf++ = gpix; } } } else { bpl = true; - uae_u8 c0 = *cp++; - uae_u8 c1 = *cp++; - uae_u32 dpix_val0, dpix_val1; - uae_u8 gpix0, gpix1; - get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); - *buf1++ = dpix_val0; - *buf1++ = dpix_val1; - *gbuf++ = gpix0; - *gbuf++ = gpix1; - cnt += bufaddv; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2103,7 +3336,7 @@ static void lts_ecs_n_ishres_dshres_b1_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_ecs_dpf_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ihires_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2129,24 +3362,31 @@ static void lts_ecs_dpf_ishres_dshres_b1_genlock(int draw_start, int draw_end, i if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; gbuf++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; *gbuf++ = gpix; } } } else { bpl = true; - uae_u8 c0 = *cp++; - uae_u8 c1 = *cp++; - uae_u32 dpix_val0, dpix_val1; - uae_u8 gpix0, gpix1; - get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); - *buf1++ = dpix_val0; - *buf1++ = dpix_val1; - *gbuf++ = gpix0; - *gbuf++ = gpix1; - cnt += bufaddv; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + colf = xcolors[colors_ocs[c]]; + col = filter_pixel(col, colf); + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2154,7 +3394,7 @@ static void lts_ecs_dpf_ishres_dshres_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ehb_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2180,24 +3420,31 @@ static void lts_ecs_ehb_ishres_dshres_b1_genlock(int draw_start, int draw_end, i if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; gbuf++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; *gbuf++ = gpix; } } } else { bpl = true; - uae_u8 c0 = *cp++; - uae_u8 c1 = *cp++; - uae_u32 dpix_val0, dpix_val1; - uae_u8 gpix0, gpix1; - get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); - *buf1++ = dpix_val0; - *buf1++ = dpix_val1; - *gbuf++ = gpix0; - *gbuf++ = gpix1; - cnt += bufaddv; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2205,7 +3452,7 @@ static void lts_ecs_ehb_ishres_dshres_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ham_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ihires_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2231,24 +3478,37 @@ static void lts_ecs_ham_ishres_dshres_b1_genlock(int draw_start, int draw_end, i if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; gbuf++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; *gbuf++ = gpix; } } } else { bpl = true; - uae_u8 c0 = *cp++; - uae_u8 c1 = *cp++; - uae_u32 dpix_val0, dpix_val1; - uae_u8 gpix0, gpix1; - get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); - *buf1++ = dpix_val0; - *buf1++ = dpix_val1; - *gbuf++ = gpix0; - *gbuf++ = gpix1; - cnt += bufaddv; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + { + uae_u8 dpval = dpf_lookup[c]; + colf = xcolors[colors_ocs[dpval]]; + } + col = filter_pixel(col, colf); + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2256,7 +3516,7 @@ static void lts_ecs_ham_ishres_dshres_b1_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_kehb_ishres_dshres_b1_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2282,24 +3542,33 @@ static void lts_ecs_kehb_ishres_dshres_b1_genlock(int draw_start, int draw_end, if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { buf1++; + buf2++; gbuf++; } else { *buf1++ = bgcolor; + *buf2++ = bgcolor; *gbuf++ = gpix; } } } else { bpl = true; - uae_u8 c0 = *cp++; - uae_u8 c1 = *cp++; - uae_u32 dpix_val0, dpix_val1; - uae_u8 gpix0, gpix1; - get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); - *buf1++ = dpix_val0; - *buf1++ = dpix_val1; - *gbuf++ = gpix0; - *gbuf++ = gpix1; - cnt += bufaddv; + uae_u8 c; + uae_u32 col; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2307,7 +3576,7 @@ static void lts_ecs_kehb_ishres_dshres_b1_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_ecs_n_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ihires_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2347,8 +3616,23 @@ static void lts_ecs_n_ilores_dlores_b2_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + c &= bplehb_mask; + if (c <= 31) { + colf = xcolors[colors_ocs[c]]; + } else { + colf = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + col = filter_pixel(col, colf); cp += cpaddv; - col = xcolors[colors_ocs[c]]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -2360,7 +3644,7 @@ static void lts_ecs_n_ilores_dlores_b2_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_ecs_dpf_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2400,11 +3684,10 @@ static void lts_ecs_dpf_ilores_dlores_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + c = cp[1]; + clxdat |= bplcoltable[c]; cp += cpaddv; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -2416,7 +3699,7 @@ static void lts_ecs_dpf_ilores_dlores_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ehb_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ihires_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2456,13 +3739,13 @@ static void lts_ecs_ehb_ilores_dlores_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + colf = decode_ham_pixel_fast(c, colors_ocs); + col = filter_pixel(col, colf); cp += cpaddv; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -2474,7 +3757,7 @@ static void lts_ecs_ehb_ilores_dlores_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ham_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2514,8 +3797,10 @@ static void lts_ecs_ham_ilores_dlores_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + c = cp[1]; + clxdat |= bplcoltable[c]; cp += cpaddv; - col = decode_ham_pixel_fast(c, colors_ocs); *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -2527,7 +3812,7 @@ static void lts_ecs_ham_ilores_dlores_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_kehb_ilores_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ihires_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2567,8 +3852,13 @@ static void lts_ecs_kehb_ilores_dlores_b2_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c & 31]]; + c = cp[1]; + clxdat |= bplcoltable[c]; + uae_u32 colf; + colf = xcolors[colors_ocs[c & 31]]; + col = filter_pixel(col, colf); + cp += cpaddv; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -2580,7 +3870,47 @@ static void lts_ecs_kehb_ilores_dlores_b2_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_ecs_n_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ishres_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ishres_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ishres_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ishres_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ishres_dlores_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2605,13 +3935,16 @@ static void lts_ecs_n_ihires_dlores_b2_genlock(int draw_start, int draw_end, int if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; - gbuf++; + buf1 += 2; + buf2 += 2; + gbuf += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf2++ = bgcolor; *buf2++ = bgcolor; *gbuf++ = gpix; + *gbuf++ = gpix; } } } else { @@ -2620,12 +3953,19 @@ static void lts_ecs_n_ihires_dlores_b2_genlock(int draw_start, int draw_end, int uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c]]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c]]; + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2633,7 +3973,11 @@ static void lts_ecs_n_ihires_dlores_b2_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_ecs_dpf_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ilores_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2658,12 +4002,15 @@ static void lts_ecs_dpf_ihires_dlores_b2_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; - gbuf++; + buf1 += 2; + buf2 += 2; + gbuf += 2; } else { + *buf1++ = bgcolor; *buf1++ = bgcolor; *buf2++ = bgcolor; + *buf2++ = bgcolor; + *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -2673,7 +4020,6 @@ static void lts_ecs_dpf_ihires_dlores_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; { uae_u8 dpval = dpf_lookup[c]; col = xcolors[colors_ocs[dpval]]; @@ -2682,6 +4028,17 @@ static void lts_ecs_dpf_ihires_dlores_b2_genlock(int draw_start, int draw_end, i *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + { + uae_u8 dpval = dpf_lookup[c]; + col = xcolors[colors_ocs[dpval]]; + } + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2689,7 +4046,11 @@ static void lts_ecs_dpf_ihires_dlores_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ilores_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2714,12 +4075,15 @@ static void lts_ecs_ehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; - gbuf++; + buf1 += 2; + buf2 += 2; + gbuf += 2; } else { + *buf1++ = bgcolor; *buf1++ = bgcolor; *buf2++ = bgcolor; + *buf2++ = bgcolor; + *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -2729,7 +4093,6 @@ static void lts_ecs_ehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; c &= bplehb_mask; if (c <= 31) { col = xcolors[colors_ocs[c]]; @@ -2740,6 +4103,19 @@ static void lts_ecs_ehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, i *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + c &= bplehb_mask; + if (c <= 31) { + col = xcolors[colors_ocs[c]]; + } else { + col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; + } + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2747,7 +4123,11 @@ static void lts_ecs_ehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ham_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ilores_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2772,12 +4152,15 @@ static void lts_ecs_ham_ihires_dlores_b2_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; - gbuf++; + buf1 += 2; + buf2 += 2; + gbuf += 2; } else { + *buf1++ = bgcolor; *buf1++ = bgcolor; *buf2++ = bgcolor; + *buf2++ = bgcolor; + *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -2787,12 +4170,19 @@ static void lts_ecs_ham_ihires_dlores_b2_genlock(int draw_start, int draw_end, i uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = decode_ham_pixel_fast(c, colors_ocs); *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = decode_ham_pixel_fast(c, colors_ocs); + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2800,7 +4190,11 @@ static void lts_ecs_ham_ihires_dlores_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_kehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ilores_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2825,13 +4219,16 @@ static void lts_ecs_kehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1++; - buf2++; - gbuf++; + buf1 += 2; + buf2 += 2; + gbuf += 2; } else { *buf1++ = bgcolor; + *buf1++ = bgcolor; + *buf2++ = bgcolor; *buf2++ = bgcolor; *gbuf++ = gpix; + *gbuf++ = gpix; } } } else { @@ -2840,12 +4237,19 @@ static void lts_ecs_kehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c & 31]]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); *gbuf++ = gpix; + c = *cp; + clxdat |= bplcoltable[c]; + col = xcolors[colors_ocs[c & 31]]; + cp += cpaddv; + *buf1++ = col; + *buf2++ = col; + gpix = get_genlock_transparency_fast(c); + *gbuf++ = gpix; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -2853,27 +4257,11 @@ static void lts_ecs_kehb_ihires_dlores_b2_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_ecs_n_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_ecs_dpf_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_ecs_ehb_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_ecs_ham_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) -{ - lts_null(); -} -static void lts_ecs_kehb_ishres_dlores_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ilores_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { lts_null(); } -static void lts_ecs_n_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2898,15 +4286,12 @@ static void lts_ecs_n_ilores_dhires_b2_genlock(int draw_start, int draw_end, int if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { - *buf1++ = bgcolor; *buf1++ = bgcolor; *buf2++ = bgcolor; - *buf2++ = bgcolor; - *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -2917,14 +4302,7 @@ static void lts_ecs_n_ilores_dhires_b2_genlock(int draw_start, int draw_end, int c = *cp; clxdat |= bplcoltable[c]; col = xcolors[colors_ocs[c]]; - *buf1++ = col; - *buf2++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - col = xcolors[colors_ocs[c]]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -2936,7 +4314,11 @@ static void lts_ecs_n_ilores_dhires_b2_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_ecs_dpf_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ihires_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_dpf_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -2961,39 +4343,26 @@ static void lts_ecs_dpf_ilores_dhires_b2_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf2++ = bgcolor; *buf2++ = bgcolor; *gbuf++ = gpix; - *gbuf++ = gpix; } } } else { - bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } - *buf1++ = col; - *buf2++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; + bpl = true; + uae_u8 c; + uae_u32 col; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; { uae_u8 dpval = dpf_lookup[c]; col = xcolors[colors_ocs[dpval]]; } + cp += cpaddv; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3005,7 +4374,11 @@ static void lts_ecs_dpf_ilores_dhires_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ihires_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ehb_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3030,16 +4403,13 @@ static void lts_ecs_ehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf2++ = bgcolor; *buf2++ = bgcolor; *gbuf++ = gpix; - *gbuf++ = gpix; } } } else { @@ -3054,19 +4424,7 @@ static void lts_ecs_ehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, i } else { col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; } - *buf1++ = col; - *buf2++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3078,7 +4436,11 @@ static void lts_ecs_ehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ham_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ihires_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_ham_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3103,16 +4465,13 @@ static void lts_ecs_ham_ilores_dhires_b2_genlock(int draw_start, int draw_end, i if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { *buf1++ = bgcolor; - *buf1++ = bgcolor; - *buf2++ = bgcolor; *buf2++ = bgcolor; *gbuf++ = gpix; - *gbuf++ = gpix; } } } else { @@ -3122,14 +4481,7 @@ static void lts_ecs_ham_ilores_dhires_b2_genlock(int draw_start, int draw_end, i c = *cp; clxdat |= bplcoltable[c]; col = decode_ham_pixel_fast(c, colors_ocs); - *buf1++ = col; - *buf2++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - col = decode_ham_pixel_fast(c, colors_ocs); *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3141,7 +4493,11 @@ static void lts_ecs_ham_ilores_dhires_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_kehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ihires_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_kehb_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3166,15 +4522,12 @@ static void lts_ecs_kehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, if (cnt < bpl1dat_trigger_offset || cnt < hbstop_offset || cnt < hstrt_offset || cnt >= hstop_offset) { if (cnt >= draw_startoffset) { if (cnt < hbstop_offset) { - buf1 += 2; - buf2 += 2; - gbuf += 2; + buf1++; + buf2++; + gbuf++; } else { - *buf1++ = bgcolor; *buf1++ = bgcolor; *buf2++ = bgcolor; - *buf2++ = bgcolor; - *gbuf++ = gpix; *gbuf++ = gpix; } } @@ -3185,14 +4538,7 @@ static void lts_ecs_kehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, c = *cp; clxdat |= bplcoltable[c]; col = xcolors[colors_ocs[c & 31]]; - *buf1++ = col; - *buf2++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; - c = *cp; - clxdat |= bplcoltable[c]; cp += cpaddv; - col = xcolors[colors_ocs[c & 31]]; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3204,7 +4550,11 @@ static void lts_ecs_kehb_ilores_dhires_b2_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_ecs_n_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ihires_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} +static void lts_ecs_n_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3240,16 +4590,14 @@ static void lts_ecs_n_ihires_dhires_b2_genlock(int draw_start, int draw_end, int } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpaddv; - col = xcolors[colors_ocs[c]]; - *buf1++ = col; - *buf2++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *buf2++ = dpix_val0; + *gbuf++ = gpix0; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -3257,7 +4605,7 @@ static void lts_ecs_n_ihires_dhires_b2_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_ecs_dpf_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_n_ishres_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3293,19 +4641,14 @@ static void lts_ecs_dpf_ihires_dhires_b2_genlock(int draw_start, int draw_end, i } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpaddv; - { - uae_u8 dpval = dpf_lookup[c]; - col = xcolors[colors_ocs[dpval]]; - } - *buf1++ = col; - *buf2++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *buf2++ = dpix_val0; + *gbuf++ = gpix0; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -3313,7 +4656,7 @@ static void lts_ecs_dpf_ihires_dhires_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ehb_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3349,21 +4692,14 @@ static void lts_ecs_ehb_ihires_dhires_b2_genlock(int draw_start, int draw_end, i } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpaddv; - c &= bplehb_mask; - if (c <= 31) { - col = xcolors[colors_ocs[c]]; - } else { - col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; - } - *buf1++ = col; - *buf2++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *buf2++ = dpix_val0; + *gbuf++ = gpix0; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -3371,7 +4707,7 @@ static void lts_ecs_ehb_ihires_dhires_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ham_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_dpf_ishres_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3407,16 +4743,14 @@ static void lts_ecs_ham_ihires_dhires_b2_genlock(int draw_start, int draw_end, i } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpaddv; - col = decode_ham_pixel_fast(c, colors_ocs); - *buf1++ = col; - *buf2++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *buf2++ = dpix_val0; + *gbuf++ = gpix0; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -3424,7 +4758,7 @@ static void lts_ecs_ham_ihires_dhires_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_kehb_ihires_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3460,16 +4794,14 @@ static void lts_ecs_kehb_ihires_dhires_b2_genlock(int draw_start, int draw_end, } } else { bpl = true; - uae_u8 c; - uae_u32 col; - c = *cp; - clxdat |= bplcoltable[c]; - cp += cpaddv; - col = xcolors[colors_ocs[c & 31]]; - *buf1++ = col; - *buf2++ = col; - gpix = get_genlock_transparency_fast(c); - *gbuf++ = gpix; + uae_u8 c0 = *cp++; + uae_u8 c1 = *cp++; + uae_u32 dpix_val0, dpix_val1; + uae_u8 gpix0, gpix1; + get_shres_pix_genlock(c0, c1, &dpix_val0, &dpix_val1, &gpix0, &gpix1); + *buf1++ = dpix_val0; + *buf2++ = dpix_val0; + *gbuf++ = gpix0; } if (cnt >= bpl1dat_trigger_offset && !bpl) { cp += cpaddv; @@ -3477,7 +4809,7 @@ static void lts_ecs_kehb_ihires_dhires_b2_genlock(int draw_start, int draw_end, cnt += bufaddv; } } -static void lts_ecs_n_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ehb_ishres_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3528,7 +4860,7 @@ static void lts_ecs_n_ishres_dhires_b2_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } -static void lts_ecs_dpf_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3579,7 +4911,7 @@ static void lts_ecs_dpf_ishres_dhires_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ehb_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_ham_ishres_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3630,7 +4962,7 @@ static void lts_ecs_ehb_ishres_dhires_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_ham_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3681,7 +5013,7 @@ static void lts_ecs_ham_ishres_dhires_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } -static void lts_ecs_kehb_ishres_dhires_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +static void lts_ecs_kehb_ishres_dhires_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; int bufaddv = 1 << bufadd; @@ -3802,8 +5134,8 @@ static void lts_ecs_n_ilores_dshres_b2_genlock(int draw_start, int draw_end, int *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c]]; + cp += cpaddv; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3815,6 +5147,10 @@ static void lts_ecs_n_ilores_dshres_b2_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } +static void lts_ecs_n_ilores_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_dpf_ilores_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -3894,11 +5230,11 @@ static void lts_ecs_dpf_ilores_dshres_b2_genlock(int draw_start, int draw_end, i *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; { uae_u8 dpval = dpf_lookup[c]; col = xcolors[colors_ocs[dpval]]; } + cp += cpaddv; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -3910,6 +5246,10 @@ static void lts_ecs_dpf_ilores_dshres_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_ecs_dpf_ilores_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_ehb_ilores_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -3995,13 +5335,13 @@ static void lts_ecs_ehb_ilores_dshres_b2_genlock(int draw_start, int draw_end, i *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; c &= bplehb_mask; if (c <= 31) { col = xcolors[colors_ocs[c]]; } else { col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; } + cp += cpaddv; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4013,6 +5353,10 @@ static void lts_ecs_ehb_ilores_dshres_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_ecs_ehb_ilores_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_ham_ilores_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -4083,8 +5427,8 @@ static void lts_ecs_ham_ilores_dshres_b2_genlock(int draw_start, int draw_end, i *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = decode_ham_pixel_fast(c, colors_ocs); + cp += cpaddv; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4096,6 +5440,10 @@ static void lts_ecs_ham_ilores_dshres_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_ecs_ham_ilores_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_kehb_ilores_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -4166,8 +5514,8 @@ static void lts_ecs_kehb_ilores_dshres_b2_genlock(int draw_start, int draw_end, *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c & 31]]; + cp += cpaddv; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4179,6 +5527,10 @@ static void lts_ecs_kehb_ilores_dshres_b2_genlock(int draw_start, int draw_end, cnt += bufaddv; } } +static void lts_ecs_kehb_ilores_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_n_ihires_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -4229,8 +5581,8 @@ static void lts_ecs_n_ihires_dshres_b2_genlock(int draw_start, int draw_end, int *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c]]; + cp += cpaddv; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4242,6 +5594,10 @@ static void lts_ecs_n_ihires_dshres_b2_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } +static void lts_ecs_n_ihires_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_dpf_ihires_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -4295,11 +5651,11 @@ static void lts_ecs_dpf_ihires_dshres_b2_genlock(int draw_start, int draw_end, i *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; { uae_u8 dpval = dpf_lookup[c]; col = xcolors[colors_ocs[dpval]]; } + cp += cpaddv; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4311,6 +5667,10 @@ static void lts_ecs_dpf_ihires_dshres_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_ecs_dpf_ihires_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_ehb_ihires_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -4366,13 +5726,13 @@ static void lts_ecs_ehb_ihires_dshres_b2_genlock(int draw_start, int draw_end, i *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; c &= bplehb_mask; if (c <= 31) { col = xcolors[colors_ocs[c]]; } else { col = xcolors[(colors_ocs[c - 32] >> 1) & 0x777]; } + cp += cpaddv; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4384,6 +5744,10 @@ static void lts_ecs_ehb_ihires_dshres_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_ecs_ehb_ihires_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_ham_ihires_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -4434,8 +5798,8 @@ static void lts_ecs_ham_ihires_dshres_b2_genlock(int draw_start, int draw_end, i *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = decode_ham_pixel_fast(c, colors_ocs); + cp += cpaddv; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4447,6 +5811,10 @@ static void lts_ecs_ham_ihires_dshres_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_ecs_ham_ihires_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_kehb_ihires_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -4497,8 +5865,8 @@ static void lts_ecs_kehb_ihires_dshres_b2_genlock(int draw_start, int draw_end, *gbuf++ = gpix; c = *cp; clxdat |= bplcoltable[c]; - cp += cpaddv; col = xcolors[colors_ocs[c & 31]]; + cp += cpaddv; *buf1++ = col; *buf2++ = col; gpix = get_genlock_transparency_fast(c); @@ -4510,6 +5878,10 @@ static void lts_ecs_kehb_ihires_dshres_b2_genlock(int draw_start, int draw_end, cnt += bufaddv; } } +static void lts_ecs_kehb_ihires_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_n_ishres_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -4565,6 +5937,10 @@ static void lts_ecs_n_ishres_dshres_b2_genlock(int draw_start, int draw_end, int cnt += bufaddv; } } +static void lts_ecs_n_ishres_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_dpf_ishres_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -4620,6 +5996,10 @@ static void lts_ecs_dpf_ishres_dshres_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_ecs_dpf_ishres_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_ehb_ishres_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -4675,6 +6055,10 @@ static void lts_ecs_ehb_ishres_dshres_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_ecs_ehb_ishres_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_ham_ishres_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -4730,6 +6114,10 @@ static void lts_ecs_ham_ishres_dshres_b2_genlock(int draw_start, int draw_end, i cnt += bufaddv; } } +static void lts_ecs_ham_ishres_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static void lts_ecs_kehb_ishres_dshres_b2_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) { uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate; @@ -4785,6 +6173,10 @@ static void lts_ecs_kehb_ishres_dshres_b2_genlock(int draw_start, int draw_end, cnt += bufaddv; } } +static void lts_ecs_kehb_ishres_dshres_b2_filtered_genlock(int draw_start, int draw_end, int draw_startoffset, int hbstrt_offset, int hbstop_offset, int hstrt_offset, int hstop_offset,int bpl1dat_trigger_offset, int planes, uae_u32 bgcolor, uae_u8 *cp, uae_u8 *cp2, int cpadd, int *cpadds, int bufadd, struct linestate *ls) +{ + lts_null(); +} static LINETOSRC_FUNCF linetoscr_ecs_genlock_fast_funcs[] = { lts_ecs_n_ilores_dlores_b1_genlock, lts_ecs_dpf_ilores_dlores_b1_genlock, @@ -4878,3 +6270,96 @@ static LINETOSRC_FUNCF linetoscr_ecs_genlock_fast_funcs[] = { lts_ecs_kehb_ishres_dshres_b2_genlock, NULL }; +static LINETOSRC_FUNCF linetoscr_ecs_genlock_fast_funcs_filtered[] = { + NULL, + NULL, + NULL, + NULL, + NULL, + lts_ecs_n_ihires_dlores_b1_filtered_genlock, + lts_ecs_dpf_ihires_dlores_b1_filtered_genlock, + lts_ecs_ehb_ihires_dlores_b1_filtered_genlock, + lts_ecs_ham_ihires_dlores_b1_filtered_genlock, + lts_ecs_kehb_ihires_dlores_b1_filtered_genlock, + lts_ecs_n_ishres_dlores_b1_filtered_genlock, + lts_ecs_dpf_ishres_dlores_b1_filtered_genlock, + lts_ecs_ehb_ishres_dlores_b1_filtered_genlock, + lts_ecs_ham_ishres_dlores_b1_filtered_genlock, + lts_ecs_kehb_ishres_dlores_b1_filtered_genlock, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_ecs_n_ishres_dhires_b1_filtered_genlock, + lts_ecs_dpf_ishres_dhires_b1_filtered_genlock, + lts_ecs_ehb_ishres_dhires_b1_filtered_genlock, + lts_ecs_ham_ishres_dhires_b1_filtered_genlock, + lts_ecs_kehb_ishres_dhires_b1_filtered_genlock, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_ecs_n_ihires_dlores_b2_filtered_genlock, + lts_ecs_dpf_ihires_dlores_b2_filtered_genlock, + lts_ecs_ehb_ihires_dlores_b2_filtered_genlock, + lts_ecs_ham_ihires_dlores_b2_filtered_genlock, + lts_ecs_kehb_ihires_dlores_b2_filtered_genlock, + lts_ecs_n_ishres_dlores_b2_filtered_genlock, + lts_ecs_dpf_ishres_dlores_b2_filtered_genlock, + lts_ecs_ehb_ishres_dlores_b2_filtered_genlock, + lts_ecs_ham_ishres_dlores_b2_filtered_genlock, + lts_ecs_kehb_ishres_dlores_b2_filtered_genlock, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_ecs_n_ishres_dhires_b2_filtered_genlock, + lts_ecs_dpf_ishres_dhires_b2_filtered_genlock, + lts_ecs_ehb_ishres_dhires_b2_filtered_genlock, + lts_ecs_ham_ishres_dhires_b2_filtered_genlock, + lts_ecs_kehb_ishres_dhires_b2_filtered_genlock, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +}; diff --git a/linetoscr_ecs_shres.cpp b/linetoscr_ecs_shres.cpp index 58effc78..6331d45f 100644 --- a/linetoscr_ecs_shres.cpp +++ b/linetoscr_ecs_shres.cpp @@ -241,6 +241,9 @@ static LINETOSRC_FUNC linetoscr_ecs_shres_funcs[] = { lts_ecs_shres_dshres, NULL }; +static LINETOSRC_FUNC linetoscr_ecs_shres_funcs_filtered[] = { + NULL +}; static void lts_ecs_shres_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -492,3 +495,6 @@ static LINETOSRC_FUNC linetoscr_ecs_shres_genlock_funcs[] = { lts_ecs_shres_dshres_genlock, NULL }; +static LINETOSRC_FUNC linetoscr_ecs_shres_genlock_funcs_filtered[] = { + NULL +}; diff --git a/linetoscr_ocs_ecs.cpp b/linetoscr_ocs_ecs.cpp index efbd15c8..93554db3 100644 --- a/linetoscr_ocs_ecs.cpp +++ b/linetoscr_ocs_ecs.cpp @@ -61,6 +61,10 @@ static void lts_ecs_fm0_n0_p2_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -121,6 +125,10 @@ static void lts_ecs_fm0_n1_p2_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -179,6 +187,10 @@ static void lts_ecs_fm0_dpf0_p2_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -240,22 +252,42 @@ static void lts_ecs_fm0_dpf1_p2_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ilores_dlores(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ilores_dlores(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ilores_dlores(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ilores_dlores(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -313,6 +345,10 @@ static void lts_ecs_fm0_n0_p4_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -373,6 +409,10 @@ static void lts_ecs_fm0_n1_p4_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -431,6 +471,10 @@ static void lts_ecs_fm0_dpf0_p4_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -492,22 +536,42 @@ static void lts_ecs_fm0_dpf1_p4_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ilores_dlores(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ilores_dlores(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ilores_dlores(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ilores_dlores(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -568,6 +632,10 @@ static void lts_ecs_fm0_n0_p5_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p5_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -631,6 +699,10 @@ static void lts_ecs_fm0_n1_p5_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p5_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -692,6 +764,10 @@ static void lts_ecs_fm0_dpf0_p5_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p5_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -756,14 +832,26 @@ static void lts_ecs_fm0_dpf1_p5_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p5_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ilores_dlores(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ilores_dlores(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -824,6 +912,10 @@ static void lts_ecs_fm0_ham0_p5_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p5_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -887,6 +979,10 @@ static void lts_ecs_fm0_ham1_p5_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p5_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -947,6 +1043,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1010,6 +1110,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1071,6 +1175,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1135,6 +1243,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1200,6 +1312,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1268,6 +1384,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1328,6 +1448,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dlores(void) { while (denise_cck < denise_total) { @@ -1391,6 +1515,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dlores(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dlores_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1463,6 +1591,10 @@ static void lts_ecs_fm0_n0_p2_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1538,6 +1670,10 @@ static void lts_ecs_fm0_n1_p2_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1611,6 +1747,10 @@ static void lts_ecs_fm0_dpf0_p2_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1687,22 +1827,42 @@ static void lts_ecs_fm0_dpf1_p2_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ilores_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1775,6 +1935,10 @@ static void lts_ecs_fm0_n0_p4_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1850,6 +2014,10 @@ static void lts_ecs_fm0_n1_p4_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1923,6 +2091,10 @@ static void lts_ecs_fm0_dpf0_p4_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -1999,22 +2171,42 @@ static void lts_ecs_fm0_dpf1_p4_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ilores_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2090,6 +2282,10 @@ static void lts_ecs_fm0_n0_p5_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p5_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2168,6 +2364,10 @@ static void lts_ecs_fm0_n1_p5_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p5_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2244,6 +2444,10 @@ static void lts_ecs_fm0_dpf0_p5_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p5_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2323,14 +2527,26 @@ static void lts_ecs_fm0_dpf1_p5_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p5_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ilores_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ilores_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2406,6 +2622,10 @@ static void lts_ecs_fm0_ham0_p5_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p5_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2484,6 +2704,10 @@ static void lts_ecs_fm0_ham1_p5_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p5_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2559,6 +2783,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2637,6 +2865,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2713,6 +2945,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2792,6 +3028,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2872,6 +3112,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -2955,6 +3199,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3030,6 +3278,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dlores_spr(void) { while (denise_cck < denise_total) { @@ -3108,6 +3360,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dlores_spr(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ihires_dlores(void) { while (denise_cck < denise_total) { @@ -3178,7 +3434,7 @@ static void lts_ecs_fm0_n0_p2_ihires_dlores(void) denise_cck++; } } -static void lts_ecs_fm0_n1_p2_ihires_dlores(void) +static void lts_ecs_fm0_n0_p2_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3216,6 +3472,7 @@ static void lts_ecs_fm0_n1_p2_ihires_dlores(void) shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); uae_u32 t0 = 0; if (!extblank) { t0 = dpix_val0; @@ -3229,10 +3486,7 @@ static void lts_ecs_fm0_n1_p2_ihires_dlores(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl2e(); - } - if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { - copybpl2o(); + copybpl2(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -3251,7 +3505,7 @@ static void lts_ecs_fm0_n1_p2_ihires_dlores(void) denise_cck++; } } -static void lts_ecs_fm0_dpf0_p2_ihires_dlores(void) +static void lts_ecs_fm0_n1_p2_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3269,8 +3523,7 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = getbpl2(); clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0]; } last_bpl_pix = pix0; } @@ -3283,8 +3536,7 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix1 = getbpl2(); clxdat |= bplcoltable[pix1]; - uae_u8 val1 = dpf_lookup[pix1]; - dpix_val1 = denise_colors.acolors[val1]; + dpix_val1 = denise_colors.acolors[pix1]; } last_bpl_pix = pix1; } @@ -3304,7 +3556,10 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dlores(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl2(); + copybpl2e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl2o(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -3323,7 +3578,7 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dlores(void) denise_cck++; } } -static void lts_ecs_fm0_dpf1_p2_ihires_dlores(void) +static void lts_ecs_fm0_n1_p2_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3341,8 +3596,7 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = getbpl2(); clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0]; } last_bpl_pix = pix0; } @@ -3355,14 +3609,14 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dlores(void) if (denise_hdiw && bpl1dat_trigger) { pix1 = getbpl2(); clxdat |= bplcoltable[pix1]; - uae_u8 val1 = dpf_lookup[pix1]; - dpix_val1 = denise_colors.acolors[val1]; + dpix_val1 = denise_colors.acolors[pix1]; } last_bpl_pix = pix1; } shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); uae_u32 t0 = 0; if (!extblank) { t0 = dpix_val0; @@ -3398,23 +3652,7 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dlores(void) denise_cck++; } } -static void lts_ecs_fm0_ehb0_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ehb1_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ham0_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ham1_p2_ihires_dlores(void) -{ - lts_null(); -} -static void lts_ecs_fm0_n0_p4_ihires_dlores(void) +static void lts_ecs_fm0_dpf0_p2_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3430,26 +3668,28 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores(void) if (!denise_blank_active) { dpix_val0 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = getbpl4(); + pix0 = getbpl2(); clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; uae_u8 pix1 = 0; uae_u32 dpix_val1 = BLANK_COLOR; if (!denise_blank_active) { dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix1 = getbpl4(); + pix1 = getbpl2(); clxdat |= bplcoltable[pix1]; - dpix_val1 = denise_colors.acolors[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { uae_u32 t0 = 0; @@ -3465,7 +3705,7 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl4(); + copybpl2(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -3484,7 +3724,7 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores(void) denise_cck++; } } -static void lts_ecs_fm0_n1_p4_ihires_dlores(void) +static void lts_ecs_fm0_dpf0_p2_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3500,28 +3740,31 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores(void) if (!denise_blank_active) { dpix_val0 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = getbpl4(); + pix0 = getbpl2(); clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; uae_u8 pix1 = 0; uae_u32 dpix_val1 = BLANK_COLOR; if (!denise_blank_active) { dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix1 = getbpl4(); + pix1 = getbpl2(); clxdat |= bplcoltable[pix1]; - dpix_val1 = denise_colors.acolors[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); uae_u32 t0 = 0; if (!extblank) { t0 = dpix_val0; @@ -3535,10 +3778,7 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { - copybpl4o(); + copybpl2(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -3557,7 +3797,7 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores(void) denise_cck++; } } -static void lts_ecs_fm0_dpf0_p4_ihires_dlores(void) +static void lts_ecs_fm0_dpf1_p2_ihires_dlores(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3573,28 +3813,28 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dlores(void) if (!denise_blank_active) { dpix_val0 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = getbpl4(); + pix0 = getbpl2(); clxdat |= bplcoltable[pix0]; uae_u8 val0 = dpf_lookup[pix0]; dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; uae_u8 pix1 = 0; uae_u32 dpix_val1 = BLANK_COLOR; if (!denise_blank_active) { dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix1 = getbpl4(); + pix1 = getbpl2(); clxdat |= bplcoltable[pix1]; uae_u8 val1 = dpf_lookup[pix1]; dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { uae_u32 t0 = 0; @@ -3610,7 +3850,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dlores(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl4(); + copybpl2e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl2o(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -3629,7 +3872,7 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dlores(void) denise_cck++; } } -static void lts_ecs_fm0_dpf1_p4_ihires_dlores(void) +static void lts_ecs_fm0_dpf1_p2_ihires_dlores_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3645,30 +3888,31 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dlores(void) if (!denise_blank_active) { dpix_val0 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = getbpl4(); + pix0 = getbpl2(); clxdat |= bplcoltable[pix0]; uae_u8 val0 = dpf_lookup[pix0]; dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; uae_u8 pix1 = 0; uae_u32 dpix_val1 = BLANK_COLOR; if (!denise_blank_active) { dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix1 = getbpl4(); + pix1 = getbpl2(); clxdat |= bplcoltable[pix1]; uae_u8 val1 = dpf_lookup[pix1]; dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); uae_u32 t0 = 0; if (!extblank) { t0 = dpix_val0; @@ -3682,10 +3926,10 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dlores(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl4e(); + copybpl2e(); } if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { - copybpl4o(); + copybpl2o(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -3704,87 +3948,1523 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dlores(void) denise_cck++; } } -static void lts_ecs_fm0_ehb0_p4_ihires_dlores(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ehb1_p4_ihires_dlores(void) +static void lts_ecs_fm0_ehb0_p2_ihires_dlores(void) { lts_null(); } -static void lts_ecs_fm0_ham0_p4_ihires_dlores(void) +static void lts_ecs_fm0_ehb0_p2_ihires_dlores_filtered(void) { lts_null(); } -static void lts_ecs_fm0_ham1_p4_ihires_dlores(void) +static void lts_ecs_fm0_ehb1_p2_ihires_dlores(void) { lts_null(); } -static void lts_ecs_fm0_n0_p5_ihires_dlores(void) +static void lts_ecs_fm0_ehb1_p2_ihires_dlores_filtered(void) { lts_null(); } -static void lts_ecs_fm0_n1_p5_ihires_dlores(void) +static void lts_ecs_fm0_ham0_p2_ihires_dlores(void) { lts_null(); } -static void lts_ecs_fm0_dpf0_p5_ihires_dlores(void) +static void lts_ecs_fm0_ham0_p2_ihires_dlores_filtered(void) { lts_null(); } -static void lts_ecs_fm0_dpf1_p5_ihires_dlores(void) +static void lts_ecs_fm0_ham1_p2_ihires_dlores(void) { lts_null(); } -static void lts_ecs_fm0_ehb0_p5_ihires_dlores(void) +static void lts_ecs_fm0_ham1_p2_ihires_dlores_filtered(void) { lts_null(); } -static void lts_ecs_fm0_ehb1_p5_ihires_dlores(void) +static void lts_ecs_fm0_n0_p4_ihires_dlores(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_ecs_fm0_ham0_p5_ihires_dlores(void) +static void lts_ecs_fm0_n0_p4_ihires_dlores_filtered(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_ecs_fm0_ham1_p5_ihires_dlores(void) +static void lts_ecs_fm0_n1_p4_ihires_dlores(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_n1_p4_ihires_dlores_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_dpf0_p4_ihires_dlores(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_dpf0_p4_ihires_dlores_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_dpf1_p4_ihires_dlores(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_dpf1_p4_ihires_dlores_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_ehb0_p4_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p4_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p4_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p4_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p4_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p4_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p4_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p4_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n0_p5_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n0_p5_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n1_p5_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n1_p5_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf0_p5_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf0_p5_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf1_p5_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf1_p5_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p5_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p5_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p5_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p5_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p5_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p5_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p5_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p5_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n0_p6_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n0_p6_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n1_p6_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n1_p6_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf0_p6_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf0_p6_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf1_p6_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf1_p6_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p6_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p6_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p6_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p6_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p6_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p6_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p6_ihires_dlores(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p6_ihires_dlores_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n0_p2_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl2(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl2(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl2(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_n0_p2_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl2(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl2(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl2(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_n1_p2_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl2(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl2(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl2o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_n1_p2_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl2(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl2(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl2o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_dpf0_p2_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl2(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl2(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl2(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_dpf0_p2_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl2(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl2(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl2(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_dpf1_p2_ihires_dlores_spr(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl2(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl2(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl2o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_dpf1_p2_ihires_dlores_spr_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl2(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl2(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl2o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_ecs_fm0_n0_p6_ihires_dlores(void) +static void lts_ecs_fm0_ehb0_p2_ihires_dlores_spr(void) { lts_null(); } -static void lts_ecs_fm0_n1_p6_ihires_dlores(void) +static void lts_ecs_fm0_ehb0_p2_ihires_dlores_spr_filtered(void) { lts_null(); } -static void lts_ecs_fm0_dpf0_p6_ihires_dlores(void) +static void lts_ecs_fm0_ehb1_p2_ihires_dlores_spr(void) { lts_null(); } -static void lts_ecs_fm0_dpf1_p6_ihires_dlores(void) +static void lts_ecs_fm0_ehb1_p2_ihires_dlores_spr_filtered(void) { lts_null(); } -static void lts_ecs_fm0_ehb0_p6_ihires_dlores(void) +static void lts_ecs_fm0_ham0_p2_ihires_dlores_spr(void) { lts_null(); } -static void lts_ecs_fm0_ehb1_p6_ihires_dlores(void) +static void lts_ecs_fm0_ham0_p2_ihires_dlores_spr_filtered(void) { lts_null(); } -static void lts_ecs_fm0_ham0_p6_ihires_dlores(void) +static void lts_ecs_fm0_ham1_p2_ihires_dlores_spr(void) { lts_null(); } -static void lts_ecs_fm0_ham1_p6_ihires_dlores(void) +static void lts_ecs_fm0_ham1_p2_ihires_dlores_spr_filtered(void) { lts_null(); } -static void lts_ecs_fm0_n0_p2_ihires_dlores_spr(void) +static void lts_ecs_fm0_n0_p4_ihires_dlores_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3801,13 +5481,13 @@ static void lts_ecs_fm0_n0_p2_ihires_dlores_spr(void) if (!denise_blank_active) { dpix_val0 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = getbpl2(); + pix0 = getbpl4(); clxdat |= bplcoltable[pix0]; dpix_val0 = denise_colors.acolors[pix0]; } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl4(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -3822,13 +5502,13 @@ static void lts_ecs_fm0_n0_p2_ihires_dlores_spr(void) if (!denise_blank_active) { dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix1 = getbpl2(); + pix1 = getbpl4(); clxdat |= bplcoltable[pix1]; dpix_val1 = denise_colors.acolors[pix1]; } last_bpl_pix = pix1; } - shiftbpl2(); + shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -3850,7 +5530,7 @@ static void lts_ecs_fm0_n0_p2_ihires_dlores_spr(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl2(); + copybpl4(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -3869,7 +5549,7 @@ static void lts_ecs_fm0_n0_p2_ihires_dlores_spr(void) denise_cck++; } } -static void lts_ecs_fm0_n1_p2_ihires_dlores_spr(void) +static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3886,13 +5566,13 @@ static void lts_ecs_fm0_n1_p2_ihires_dlores_spr(void) if (!denise_blank_active) { dpix_val0 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = getbpl2(); + pix0 = getbpl4(); clxdat |= bplcoltable[pix0]; dpix_val0 = denise_colors.acolors[pix0]; } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl4(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -3907,19 +5587,21 @@ static void lts_ecs_fm0_n1_p2_ihires_dlores_spr(void) if (!denise_blank_active) { dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix1 = getbpl2(); + pix1 = getbpl4(); clxdat |= bplcoltable[pix1]; dpix_val1 = denise_colors.acolors[pix1]; } last_bpl_pix = pix1; } - shiftbpl2(); + shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } uae_u32 t0 = 0; @@ -3935,10 +5617,7 @@ static void lts_ecs_fm0_n1_p2_ihires_dlores_spr(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl2e(); - } - if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { - copybpl2o(); + copybpl4(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -3957,7 +5636,7 @@ static void lts_ecs_fm0_n1_p2_ihires_dlores_spr(void) denise_cck++; } } -static void lts_ecs_fm0_dpf0_p2_ihires_dlores_spr(void) +static void lts_ecs_fm0_n1_p4_ihires_dlores_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3974,14 +5653,13 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dlores_spr(void) if (!denise_blank_active) { dpix_val0 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = getbpl2(); + pix0 = getbpl4(); clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0]; } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl4(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -3996,14 +5674,13 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dlores_spr(void) if (!denise_blank_active) { dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix1 = getbpl2(); + pix1 = getbpl4(); clxdat |= bplcoltable[pix1]; - uae_u8 val1 = dpf_lookup[pix1]; - dpix_val1 = denise_colors.acolors[val1]; + dpix_val1 = denise_colors.acolors[pix1]; } last_bpl_pix = pix1; } - shiftbpl2(); + shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -4025,7 +5702,10 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dlores_spr(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl2(); + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -4044,7 +5724,7 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dlores_spr(void) denise_cck++; } } -static void lts_ecs_fm0_dpf1_p2_ihires_dlores_spr(void) +static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4061,14 +5741,13 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dlores_spr(void) if (!denise_blank_active) { dpix_val0 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = getbpl2(); + pix0 = getbpl4(); clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0]; } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl4(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -4083,20 +5762,21 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dlores_spr(void) if (!denise_blank_active) { dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix1 = getbpl2(); + pix1 = getbpl4(); clxdat |= bplcoltable[pix1]; - uae_u8 val1 = dpf_lookup[pix1]; - dpix_val1 = denise_colors.acolors[val1]; + dpix_val1 = denise_colors.acolors[pix1]; } last_bpl_pix = pix1; } - shiftbpl2(); + shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } uae_u32 t0 = 0; @@ -4112,10 +5792,10 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dlores_spr(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl2e(); + copybpl4e(); } if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { - copybpl2o(); + copybpl4o(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -4134,23 +5814,7 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dlores_spr(void) denise_cck++; } } -static void lts_ecs_fm0_ehb0_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ehb1_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ham0_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ham1_p2_ihires_dlores_spr(void) -{ - lts_null(); -} -static void lts_ecs_fm0_n0_p4_ihires_dlores_spr(void) +static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4169,7 +5833,8 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = getbpl4(); clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } @@ -4190,7 +5855,8 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix1 = getbpl4(); clxdat |= bplcoltable[pix1]; - dpix_val1 = denise_colors.acolors[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } @@ -4235,7 +5901,7 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores_spr(void) denise_cck++; } } -static void lts_ecs_fm0_n1_p4_ihires_dlores_spr(void) +static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4254,7 +5920,8 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = getbpl4(); clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } @@ -4275,17 +5942,20 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_spr(void) if (denise_hdiw && bpl1dat_trigger) { pix1 = getbpl4(); clxdat |= bplcoltable[pix1]; - dpix_val1 = denise_colors.acolors[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } uae_u32 t0 = 0; @@ -4301,10 +5971,7 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_spr(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { - copybpl4o(); + copybpl4(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -4323,7 +5990,7 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_spr(void) denise_cck++; } } -static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr(void) +static void lts_ecs_fm0_dpf1_p4_ihires_dlores_spr(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4391,7 +6058,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl4(); + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -4410,7 +6080,7 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr(void) denise_cck++; } } -static void lts_ecs_fm0_dpf1_p4_ihires_dlores_spr(void) +static void lts_ecs_fm0_dpf1_p4_ihires_dlores_spr_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4459,10 +6129,12 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dlores_spr(void) shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } uae_u32 t0 = 0; @@ -4504,82 +6176,162 @@ static void lts_ecs_fm0_ehb0_p4_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_n0_p5_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_n1_p5_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_dpf0_p5_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_dpf1_p5_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p5_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p5_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_n0_p6_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_n1_p6_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_dpf0_p6_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_dpf1_p6_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p6_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p6_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p6_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ihires_dlores_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p6_ihires_dlores_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -4651,6 +6403,10 @@ static void lts_ecs_fm0_n0_p2_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -4725,6 +6481,10 @@ static void lts_ecs_fm0_n1_p2_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -4797,6 +6557,10 @@ static void lts_ecs_fm0_dpf0_p2_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -4872,22 +6636,42 @@ static void lts_ecs_fm0_dpf1_p2_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ilores_dhires(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ilores_dhires(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ilores_dhires(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ilores_dhires(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -4959,6 +6743,10 @@ static void lts_ecs_fm0_n0_p4_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -5033,6 +6821,10 @@ static void lts_ecs_fm0_n1_p4_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -5105,6 +6897,10 @@ static void lts_ecs_fm0_dpf0_p4_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -5180,7 +6976,15 @@ static void lts_ecs_fm0_dpf1_p4_ilores_dhires(void) denise_cck++; } } -static void lts_ecs_fm0_ehb0_p4_ilores_dhires(void) +static void lts_ecs_fm0_dpf1_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p4_ilores_dhires(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p4_ilores_dhires_filtered(void) { lts_null(); } @@ -5188,14 +6992,26 @@ static void lts_ecs_fm0_ehb1_p4_ilores_dhires(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ilores_dhires(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ilores_dhires(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -5270,6 +7086,10 @@ static void lts_ecs_fm0_n0_p5_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p5_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -5347,6 +7167,10 @@ static void lts_ecs_fm0_n1_p5_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p5_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -5422,6 +7246,10 @@ static void lts_ecs_fm0_dpf0_p5_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p5_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -5500,14 +7328,26 @@ static void lts_ecs_fm0_dpf1_p5_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p5_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ilores_dhires(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ilores_dhires(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -5582,6 +7422,10 @@ static void lts_ecs_fm0_ham0_p5_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p5_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -5659,6 +7503,10 @@ static void lts_ecs_fm0_ham1_p5_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p5_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -5733,6 +7581,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -5810,6 +7662,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -5885,6 +7741,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -5963,6 +7823,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -6042,6 +7906,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -6124,6 +7992,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -6198,6 +8070,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dhires(void) { while (denise_cck < denise_total) { @@ -6275,6 +8151,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -6362,6 +8242,10 @@ static void lts_ecs_fm0_n0_p2_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -6452,6 +8336,10 @@ static void lts_ecs_fm0_n1_p2_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -6540,6 +8428,10 @@ static void lts_ecs_fm0_dpf0_p2_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -6631,22 +8523,42 @@ static void lts_ecs_fm0_dpf1_p2_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ilores_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ilores_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ilores_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ilores_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -6734,6 +8646,10 @@ static void lts_ecs_fm0_n0_p4_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -6824,6 +8740,10 @@ static void lts_ecs_fm0_n1_p4_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -6912,6 +8832,10 @@ static void lts_ecs_fm0_dpf0_p4_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -7003,22 +8927,42 @@ static void lts_ecs_fm0_dpf1_p4_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ilores_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ilores_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ilores_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ilores_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -7109,6 +9053,10 @@ static void lts_ecs_fm0_n0_p5_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p5_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -7202,6 +9150,10 @@ static void lts_ecs_fm0_n1_p5_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p5_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -7293,6 +9245,10 @@ static void lts_ecs_fm0_dpf0_p5_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p5_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -7387,14 +9343,26 @@ static void lts_ecs_fm0_dpf1_p5_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p5_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ilores_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ilores_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -7485,6 +9453,10 @@ static void lts_ecs_fm0_ham0_p5_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p5_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -7578,6 +9550,10 @@ static void lts_ecs_fm0_ham1_p5_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p5_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -7668,6 +9644,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -7761,6 +9741,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -7852,6 +9836,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -7946,6 +9934,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -8041,6 +10033,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -8139,6 +10135,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -8229,6 +10229,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dhires_spr(void) { while (denise_cck < denise_total) { @@ -8322,6 +10326,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ihires_dhires(void) { while (denise_cck < denise_total) { @@ -8403,6 +10411,10 @@ static void lts_ecs_fm0_n0_p2_ihires_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ihires_dhires(void) { while (denise_cck < denise_total) { @@ -8487,6 +10499,10 @@ static void lts_ecs_fm0_n1_p2_ihires_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ihires_dhires(void) { while (denise_cck < denise_total) { @@ -8570,6 +10586,10 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ihires_dhires(void) { while (denise_cck < denise_total) { @@ -8656,22 +10676,42 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ihires_dhires(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ihires_dhires(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ihires_dhires(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ihires_dhires(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ihires_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ihires_dhires(void) { while (denise_cck < denise_total) { @@ -8753,6 +10793,10 @@ static void lts_ecs_fm0_n0_p4_ihires_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ihires_dhires(void) { while (denise_cck < denise_total) { @@ -8837,6 +10881,10 @@ static void lts_ecs_fm0_n1_p4_ihires_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ihires_dhires(void) { while (denise_cck < denise_total) { @@ -8920,6 +10968,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ihires_dhires(void) { while (denise_cck < denise_total) { @@ -9006,79 +11058,159 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dhires(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ihires_dhires(void) { lts_null(); } -static void lts_ecs_fm0_ehb1_p4_ihires_dhires(void) +static void lts_ecs_fm0_ehb0_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p4_ihires_dhires(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p4_ihires_dhires(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p4_ihires_dhires(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p4_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n0_p5_ihires_dhires(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n0_p5_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n1_p5_ihires_dhires(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n1_p5_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf0_p5_ihires_dhires(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf0_p5_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf1_p5_ihires_dhires(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf1_p5_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p5_ihires_dhires(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p5_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p5_ihires_dhires(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p5_ihires_dhires_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p5_ihires_dhires(void) { lts_null(); } -static void lts_ecs_fm0_ham0_p4_ihires_dhires(void) +static void lts_ecs_fm0_ham0_p5_ihires_dhires_filtered(void) { lts_null(); } -static void lts_ecs_fm0_ham1_p4_ihires_dhires(void) +static void lts_ecs_fm0_ham1_p5_ihires_dhires(void) { lts_null(); } -static void lts_ecs_fm0_n0_p5_ihires_dhires(void) +static void lts_ecs_fm0_ham1_p5_ihires_dhires_filtered(void) { lts_null(); } -static void lts_ecs_fm0_n1_p5_ihires_dhires(void) +static void lts_ecs_fm0_n0_p6_ihires_dhires(void) { lts_null(); } -static void lts_ecs_fm0_dpf0_p5_ihires_dhires(void) +static void lts_ecs_fm0_n0_p6_ihires_dhires_filtered(void) { lts_null(); } -static void lts_ecs_fm0_dpf1_p5_ihires_dhires(void) +static void lts_ecs_fm0_n1_p6_ihires_dhires(void) { lts_null(); } -static void lts_ecs_fm0_ehb0_p5_ihires_dhires(void) +static void lts_ecs_fm0_n1_p6_ihires_dhires_filtered(void) { lts_null(); } -static void lts_ecs_fm0_ehb1_p5_ihires_dhires(void) +static void lts_ecs_fm0_dpf0_p6_ihires_dhires(void) { lts_null(); } -static void lts_ecs_fm0_ham0_p5_ihires_dhires(void) +static void lts_ecs_fm0_dpf0_p6_ihires_dhires_filtered(void) { lts_null(); } -static void lts_ecs_fm0_ham1_p5_ihires_dhires(void) +static void lts_ecs_fm0_dpf1_p6_ihires_dhires(void) { lts_null(); } -static void lts_ecs_fm0_n0_p6_ihires_dhires(void) +static void lts_ecs_fm0_dpf1_p6_ihires_dhires_filtered(void) { lts_null(); } -static void lts_ecs_fm0_n1_p6_ihires_dhires(void) +static void lts_ecs_fm0_ehb0_p6_ihires_dhires(void) { lts_null(); } -static void lts_ecs_fm0_dpf0_p6_ihires_dhires(void) +static void lts_ecs_fm0_ehb0_p6_ihires_dhires_filtered(void) { lts_null(); } -static void lts_ecs_fm0_dpf1_p6_ihires_dhires(void) +static void lts_ecs_fm0_ehb1_p6_ihires_dhires(void) { lts_null(); } -static void lts_ecs_fm0_ehb0_p6_ihires_dhires(void) +static void lts_ecs_fm0_ehb1_p6_ihires_dhires_filtered(void) { lts_null(); } -static void lts_ecs_fm0_ehb1_p6_ihires_dhires(void) +static void lts_ecs_fm0_ham0_p6_ihires_dhires(void) { lts_null(); } -static void lts_ecs_fm0_ham0_p6_ihires_dhires(void) +static void lts_ecs_fm0_ham0_p6_ihires_dhires_filtered(void) { lts_null(); } @@ -9086,6 +11218,10 @@ static void lts_ecs_fm0_ham1_p6_ihires_dhires(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p6_ihires_dhires_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ihires_dhires_spr(void) { while (denise_cck < denise_total) { @@ -9189,6 +11325,10 @@ static void lts_ecs_fm0_n0_p2_ihires_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ihires_dhires_spr(void) { while (denise_cck < denise_total) { @@ -9295,6 +11435,10 @@ static void lts_ecs_fm0_n1_p2_ihires_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ihires_dhires_spr(void) { while (denise_cck < denise_total) { @@ -9400,6 +11544,10 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ihires_dhires_spr(void) { while (denise_cck < denise_total) { @@ -9508,22 +11656,42 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ihires_dhires_spr(void) { while (denise_cck < denise_total) { @@ -9627,6 +11795,10 @@ static void lts_ecs_fm0_n0_p4_ihires_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ihires_dhires_spr(void) { while (denise_cck < denise_total) { @@ -9733,6 +11905,10 @@ static void lts_ecs_fm0_n1_p4_ihires_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ihires_dhires_spr(void) { while (denise_cck < denise_total) { @@ -9838,6 +12014,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ihires_dhires_spr(void) { while (denise_cck < denise_total) { @@ -9946,86 +12126,170 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dhires_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_n0_p5_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_n1_p5_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_dpf0_p5_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_dpf1_p5_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p5_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p5_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_n0_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_n1_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_dpf0_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_dpf1_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ihires_dhires_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p6_ihires_dhires_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -10125,6 +12389,10 @@ static void lts_ecs_fm0_n0_p2_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -10227,6 +12495,10 @@ static void lts_ecs_fm0_n1_p2_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -10327,6 +12599,10 @@ static void lts_ecs_fm0_dpf0_p2_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -10430,22 +12706,42 @@ static void lts_ecs_fm0_dpf1_p2_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ilores_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ilores_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ilores_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ilores_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -10545,6 +12841,10 @@ static void lts_ecs_fm0_n0_p4_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -10647,6 +12947,10 @@ static void lts_ecs_fm0_n1_p4_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -10747,6 +13051,10 @@ static void lts_ecs_fm0_dpf0_p4_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -10850,22 +13158,42 @@ static void lts_ecs_fm0_dpf1_p4_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ilores_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ilores_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ilores_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ilores_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -10968,6 +13296,10 @@ static void lts_ecs_fm0_n0_p5_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p5_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -11073,6 +13405,10 @@ static void lts_ecs_fm0_n1_p5_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p5_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -11176,6 +13512,10 @@ static void lts_ecs_fm0_dpf0_p5_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p5_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -11282,14 +13622,26 @@ static void lts_ecs_fm0_dpf1_p5_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p5_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ilores_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ilores_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -11392,6 +13744,10 @@ static void lts_ecs_fm0_ham0_p5_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p5_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -11497,6 +13853,10 @@ static void lts_ecs_fm0_ham1_p5_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p5_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -11599,6 +13959,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -11704,6 +14068,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -11807,6 +14175,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -11913,6 +14285,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -12020,6 +14396,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -12130,6 +14510,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -12232,6 +14616,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dshres(void) { while (denise_cck < denise_total) { @@ -12337,6 +14725,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -12454,6 +14846,10 @@ static void lts_ecs_fm0_n0_p2_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -12574,6 +14970,10 @@ static void lts_ecs_fm0_n1_p2_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -12692,6 +15092,10 @@ static void lts_ecs_fm0_dpf0_p2_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -12813,22 +15217,42 @@ static void lts_ecs_fm0_dpf1_p2_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ilores_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -12946,6 +15370,10 @@ static void lts_ecs_fm0_n0_p4_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -13066,6 +15494,10 @@ static void lts_ecs_fm0_n1_p4_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -13184,6 +15616,10 @@ static void lts_ecs_fm0_dpf0_p4_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -13305,22 +15741,42 @@ static void lts_ecs_fm0_dpf1_p4_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ilores_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -13441,6 +15897,10 @@ static void lts_ecs_fm0_n0_p5_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p5_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -13564,6 +16024,10 @@ static void lts_ecs_fm0_n1_p5_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p5_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -13685,6 +16149,10 @@ static void lts_ecs_fm0_dpf0_p5_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p5_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -13809,14 +16277,26 @@ static void lts_ecs_fm0_dpf1_p5_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p5_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ilores_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ilores_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -13937,6 +16417,10 @@ static void lts_ecs_fm0_ham0_p5_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p5_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -14060,6 +16544,10 @@ static void lts_ecs_fm0_ham1_p5_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p5_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -14180,6 +16668,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -14303,6 +16795,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -14424,6 +16920,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -14548,6 +17048,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -14673,6 +17177,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -14801,6 +17309,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -14921,6 +17433,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dshres_spr(void) { while (denise_cck < denise_total) { @@ -15044,6 +17560,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -15153,6 +17673,10 @@ static void lts_ecs_fm0_n0_p2_ihires_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -15265,6 +17789,10 @@ static void lts_ecs_fm0_n1_p2_ihires_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -15376,6 +17904,10 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -15490,22 +18022,42 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -15615,6 +18167,10 @@ static void lts_ecs_fm0_n0_p4_ihires_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -15727,6 +18283,10 @@ static void lts_ecs_fm0_n1_p4_ihires_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -15838,6 +18398,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ihires_dshres(void) { while (denise_cck < denise_total) { @@ -15952,86 +18516,170 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dshres(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_n0_p5_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_n1_p5_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_dpf0_p5_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_dpf1_p5_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p5_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p5_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_n0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_n1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_dpf0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_dpf1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ihires_dshres(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p6_ihires_dshres_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -16177,6 +18825,10 @@ static void lts_ecs_fm0_n0_p2_ihires_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -16325,6 +18977,10 @@ static void lts_ecs_fm0_n1_p2_ihires_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -16472,6 +19128,10 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -16622,22 +19282,42 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -16783,6 +19463,10 @@ static void lts_ecs_fm0_n0_p4_ihires_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -16931,6 +19615,10 @@ static void lts_ecs_fm0_n1_p4_ihires_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -17078,6 +19766,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ihires_dshres_spr(void) { while (denise_cck < denise_total) { @@ -17228,86 +19920,170 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dshres_spr(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_n0_p5_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_n1_p5_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_dpf0_p5_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_dpf1_p5_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p5_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p5_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_n0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_n1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_dpf0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_dpf1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ihires_dshres_spr(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p6_ihires_dshres_spr_filtered(void) +{ + lts_null(); +} static LINETOSRC_FUNC linetoscr_ecs_funcs[] = { lts_ecs_fm0_n0_p2_ilores_dlores, lts_ecs_fm0_n1_p2_ilores_dlores, @@ -17695,3 +20471,390 @@ static LINETOSRC_FUNC linetoscr_ecs_funcs[] = { lts_ecs_fm0_ham1_p6_ihires_dshres_spr, NULL }; +static LINETOSRC_FUNC linetoscr_ecs_funcs_filtered[] = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_ecs_fm0_n0_p2_ihires_dlores_filtered, + lts_ecs_fm0_n1_p2_ihires_dlores_filtered, + lts_ecs_fm0_dpf0_p2_ihires_dlores_filtered, + lts_ecs_fm0_dpf1_p2_ihires_dlores_filtered, + lts_ecs_fm0_ehb0_p2_ihires_dlores_filtered, + lts_ecs_fm0_ehb1_p2_ihires_dlores_filtered, + lts_ecs_fm0_ham0_p2_ihires_dlores_filtered, + lts_ecs_fm0_ham1_p2_ihires_dlores_filtered, + lts_ecs_fm0_n0_p4_ihires_dlores_filtered, + lts_ecs_fm0_n1_p4_ihires_dlores_filtered, + lts_ecs_fm0_dpf0_p4_ihires_dlores_filtered, + lts_ecs_fm0_dpf1_p4_ihires_dlores_filtered, + lts_ecs_fm0_ehb0_p4_ihires_dlores_filtered, + lts_ecs_fm0_ehb1_p4_ihires_dlores_filtered, + lts_ecs_fm0_ham0_p4_ihires_dlores_filtered, + lts_ecs_fm0_ham1_p4_ihires_dlores_filtered, + lts_ecs_fm0_n0_p5_ihires_dlores_filtered, + lts_ecs_fm0_n1_p5_ihires_dlores_filtered, + lts_ecs_fm0_dpf0_p5_ihires_dlores_filtered, + lts_ecs_fm0_dpf1_p5_ihires_dlores_filtered, + lts_ecs_fm0_ehb0_p5_ihires_dlores_filtered, + lts_ecs_fm0_ehb1_p5_ihires_dlores_filtered, + lts_ecs_fm0_ham0_p5_ihires_dlores_filtered, + lts_ecs_fm0_ham1_p5_ihires_dlores_filtered, + lts_ecs_fm0_n0_p6_ihires_dlores_filtered, + lts_ecs_fm0_n1_p6_ihires_dlores_filtered, + lts_ecs_fm0_dpf0_p6_ihires_dlores_filtered, + lts_ecs_fm0_dpf1_p6_ihires_dlores_filtered, + lts_ecs_fm0_ehb0_p6_ihires_dlores_filtered, + lts_ecs_fm0_ehb1_p6_ihires_dlores_filtered, + lts_ecs_fm0_ham0_p6_ihires_dlores_filtered, + lts_ecs_fm0_ham1_p6_ihires_dlores_filtered, + lts_ecs_fm0_n0_p2_ihires_dlores_spr_filtered, + lts_ecs_fm0_n1_p2_ihires_dlores_spr_filtered, + lts_ecs_fm0_dpf0_p2_ihires_dlores_spr_filtered, + lts_ecs_fm0_dpf1_p2_ihires_dlores_spr_filtered, + lts_ecs_fm0_ehb0_p2_ihires_dlores_spr_filtered, + lts_ecs_fm0_ehb1_p2_ihires_dlores_spr_filtered, + lts_ecs_fm0_ham0_p2_ihires_dlores_spr_filtered, + lts_ecs_fm0_ham1_p2_ihires_dlores_spr_filtered, + lts_ecs_fm0_n0_p4_ihires_dlores_spr_filtered, + lts_ecs_fm0_n1_p4_ihires_dlores_spr_filtered, + lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_filtered, + lts_ecs_fm0_dpf1_p4_ihires_dlores_spr_filtered, + lts_ecs_fm0_ehb0_p4_ihires_dlores_spr_filtered, + lts_ecs_fm0_ehb1_p4_ihires_dlores_spr_filtered, + lts_ecs_fm0_ham0_p4_ihires_dlores_spr_filtered, + lts_ecs_fm0_ham1_p4_ihires_dlores_spr_filtered, + lts_ecs_fm0_n0_p5_ihires_dlores_spr_filtered, + lts_ecs_fm0_n1_p5_ihires_dlores_spr_filtered, + lts_ecs_fm0_dpf0_p5_ihires_dlores_spr_filtered, + lts_ecs_fm0_dpf1_p5_ihires_dlores_spr_filtered, + lts_ecs_fm0_ehb0_p5_ihires_dlores_spr_filtered, + lts_ecs_fm0_ehb1_p5_ihires_dlores_spr_filtered, + lts_ecs_fm0_ham0_p5_ihires_dlores_spr_filtered, + lts_ecs_fm0_ham1_p5_ihires_dlores_spr_filtered, + lts_ecs_fm0_n0_p6_ihires_dlores_spr_filtered, + lts_ecs_fm0_n1_p6_ihires_dlores_spr_filtered, + lts_ecs_fm0_dpf0_p6_ihires_dlores_spr_filtered, + lts_ecs_fm0_dpf1_p6_ihires_dlores_spr_filtered, + lts_ecs_fm0_ehb0_p6_ihires_dlores_spr_filtered, + lts_ecs_fm0_ehb1_p6_ihires_dlores_spr_filtered, + lts_ecs_fm0_ham0_p6_ihires_dlores_spr_filtered, + lts_ecs_fm0_ham1_p6_ihires_dlores_spr_filtered, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +}; diff --git a/linetoscr_ocs_ecs_genlock.cpp b/linetoscr_ocs_ecs_genlock.cpp index c9a4a684..49ccf665 100644 --- a/linetoscr_ocs_ecs_genlock.cpp +++ b/linetoscr_ocs_ecs_genlock.cpp @@ -68,6 +68,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -135,6 +139,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -200,6 +208,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -268,6 +280,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -337,6 +353,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -409,6 +429,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -473,6 +497,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -540,6 +568,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dlores_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dlores_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -621,6 +653,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -705,6 +741,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -787,6 +827,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -872,6 +916,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -958,6 +1006,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1047,6 +1099,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1128,6 +1184,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dlores_spr_genlock(void) { while (denise_cck < denise_total) { @@ -1212,6 +1272,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dlores_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -1289,6 +1353,84 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ihires_dlores_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + gpix0 = get_genlock_transparency(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + gpix1 = get_genlock_transparency(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = gpix0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} static void lts_ecs_fm0_n1_p4_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -1369,6 +1511,87 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ihires_dlores_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + gpix0 = get_genlock_transparency(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + gpix1 = get_genlock_transparency(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = gpix0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} static void lts_ecs_fm0_dpf0_p4_ihires_dlores_genlock(void) { while (denise_cck < denise_total) { @@ -1448,7 +1671,7 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_ecs_fm0_dpf1_p4_ihires_dlores_genlock(void) +static void lts_ecs_fm0_dpf0_p4_ihires_dlores_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1494,6 +1717,7 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dlores_genlock(void) shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); uae_u32 t0 = 0; if (!extblank) { t0 = dpix_val0; @@ -1508,10 +1732,7 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dlores_genlock(void) *gbuf++ = gpix0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { - copybpl4o(); + copybpl4(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -1530,23 +1751,590 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dlores_genlock(void) denise_cck++; } } -static void lts_ecs_fm0_ehb0_p4_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ehb1_p4_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ham0_p4_ihires_dlores_genlock(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ham1_p4_ihires_dlores_genlock(void) +static void lts_ecs_fm0_dpf1_p4_ihires_dlores_genlock(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = gpix0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_dpf1_p4_ihires_dlores_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = gpix0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_ehb0_p4_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p4_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p4_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p4_ihires_dlores_genlock(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p4_ihires_dlores_filtered_genlock(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + gpix0 = get_genlock_transparency(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + gpix1 = get_genlock_transparency(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = gpix0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + gpix0 = get_genlock_transparency(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + gpix1 = get_genlock_transparency(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = gpix0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + gpix0 = get_genlock_transparency(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + gpix1 = get_genlock_transparency(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = gpix0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + gpix0 = get_genlock_transparency(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + gpix1 = get_genlock_transparency(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + uae_u32 t0 = 0; + if (!extblank) { + t0 = dpix_val0; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = gpix0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_genlock(void) +static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1567,8 +2355,9 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = getbpl4(); clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0]; - gpix0 = get_genlock_transparency(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } @@ -1591,8 +2380,9 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix1 = getbpl4(); clxdat |= bplcoltable[pix1]; - dpix_val1 = denise_colors.acolors[pix1]; - gpix1 = get_genlock_transparency(pix1); + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); } last_bpl_pix = pix1; } @@ -1640,7 +2430,7 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_genlock(void) +static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1661,8 +2451,9 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = getbpl4(); clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0]; - gpix0 = get_genlock_transparency(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } @@ -1685,20 +2476,23 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix1 = getbpl4(); clxdat |= bplcoltable[pix1]; - dpix_val1 = denise_colors.acolors[pix1]; - gpix1 = get_genlock_transparency(pix1); + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); } last_bpl_pix = pix1; } shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; gpix0 = get_genlock_transparency(spix0); + dpix_val1 = dpix_val0; } } uae_u32 t0 = 0; @@ -1715,10 +2509,7 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_genlock(void) *gbuf++ = gpix0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { - copybpl4o(); + copybpl4(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -1737,7 +2528,7 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_genlock(void) +static void lts_ecs_fm0_dpf1_p4_ihires_dlores_spr_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1814,7 +2605,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_genlock(void) *gbuf++ = gpix0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl4(); + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -1833,7 +2627,7 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_genlock(void) denise_cck++; } } -static void lts_ecs_fm0_dpf1_p4_ihires_dlores_spr_genlock(void) +static void lts_ecs_fm0_dpf1_p4_ihires_dlores_spr_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1888,12 +2682,14 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dlores_spr_genlock(void) shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; gpix0 = get_genlock_transparency(spix0); + dpix_val1 = dpix_val0; } } uae_u32 t0 = 0; @@ -1936,18 +2732,34 @@ static void lts_ecs_fm0_ehb0_p4_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ihires_dlores_spr_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ihires_dlores_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -2028,6 +2840,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dhires_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -2111,6 +2927,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dhires_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -2192,6 +3012,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dhires_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -2276,6 +3100,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dhires_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -2361,6 +3189,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dhires_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -2449,6 +3281,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dhires_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -2529,6 +3365,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dhires_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -2612,6 +3452,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dhires_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -2710,6 +3554,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dhires_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -2811,6 +3659,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dhires_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -2910,6 +3762,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dhires_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -3012,6 +3868,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dhires_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -3115,6 +3975,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dhires_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -3221,6 +4085,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dhires_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -3319,6 +4187,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dhires_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -3420,6 +4292,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dhires_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -3509,6 +4385,10 @@ static void lts_ecs_fm0_n0_p4_ihires_dhires_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -3601,6 +4481,10 @@ static void lts_ecs_fm0_n1_p4_ihires_dhires_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -3692,6 +4576,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dhires_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ihires_dhires_genlock(void) { while (denise_cck < denise_total) { @@ -3786,22 +4674,42 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dhires_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ihires_dhires_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ihires_dhires_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ihires_dhires_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ihires_dhires_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ihires_dhires_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -3917,6 +4825,10 @@ static void lts_ecs_fm0_n0_p4_ihires_dhires_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -4035,6 +4947,10 @@ static void lts_ecs_fm0_n1_p4_ihires_dhires_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -4152,6 +5068,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dhires_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ihires_dhires_spr_genlock(void) { while (denise_cck < denise_total) { @@ -4272,22 +5192,42 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dhires_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ihires_dhires_spr_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ihires_dhires_spr_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ihires_dhires_spr_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ihires_dhires_spr_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ihires_dhires_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -4400,6 +5340,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -4515,6 +5459,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -4628,6 +5576,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -4744,6 +5696,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -4861,6 +5817,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -4981,6 +5941,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -5093,6 +6057,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -5208,6 +6176,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dshres_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -5340,6 +6312,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -5475,6 +6451,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -5608,6 +6588,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -5744,6 +6728,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -5881,6 +6869,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -6021,6 +7013,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -6153,6 +7149,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -6288,6 +7288,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dshres_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -6409,6 +7413,10 @@ static void lts_ecs_fm0_n0_p4_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -6533,6 +7541,10 @@ static void lts_ecs_fm0_n1_p4_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -6656,6 +7668,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ihires_dshres_genlock(void) { while (denise_cck < denise_total) { @@ -6782,22 +7798,42 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dshres_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ihires_dshres_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ihires_dshres_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -6963,6 +7999,10 @@ static void lts_ecs_fm0_n0_p4_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -7131,6 +8171,10 @@ static void lts_ecs_fm0_n1_p4_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -7298,6 +8342,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ihires_dshres_spr_genlock(void) { while (denise_cck < denise_total) { @@ -7468,22 +8516,42 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dshres_spr_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ihires_dshres_spr_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ihires_dshres_spr_filtered_genlock(void) +{ + lts_null(); +} static LINETOSRC_FUNC linetoscr_ecs_genlock_funcs[] = { lts_ecs_fm0_n0_p6_ilores_dlores_genlock, lts_ecs_fm0_n1_p6_ilores_dlores_genlock, @@ -7583,3 +8651,102 @@ static LINETOSRC_FUNC linetoscr_ecs_genlock_funcs[] = { lts_ecs_fm0_ham1_p4_ihires_dshres_spr_genlock, NULL }; +static LINETOSRC_FUNC linetoscr_ecs_genlock_funcs_filtered[] = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_ecs_fm0_n0_p4_ihires_dlores_filtered_genlock, + lts_ecs_fm0_n1_p4_ihires_dlores_filtered_genlock, + lts_ecs_fm0_dpf0_p4_ihires_dlores_filtered_genlock, + lts_ecs_fm0_dpf1_p4_ihires_dlores_filtered_genlock, + lts_ecs_fm0_ehb0_p4_ihires_dlores_filtered_genlock, + lts_ecs_fm0_ehb1_p4_ihires_dlores_filtered_genlock, + lts_ecs_fm0_ham0_p4_ihires_dlores_filtered_genlock, + lts_ecs_fm0_ham1_p4_ihires_dlores_filtered_genlock, + lts_ecs_fm0_n0_p4_ihires_dlores_spr_filtered_genlock, + lts_ecs_fm0_n1_p4_ihires_dlores_spr_filtered_genlock, + lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_filtered_genlock, + lts_ecs_fm0_dpf1_p4_ihires_dlores_spr_filtered_genlock, + lts_ecs_fm0_ehb0_p4_ihires_dlores_spr_filtered_genlock, + lts_ecs_fm0_ehb1_p4_ihires_dlores_spr_filtered_genlock, + lts_ecs_fm0_ham0_p4_ihires_dlores_spr_filtered_genlock, + lts_ecs_fm0_ham1_p4_ihires_dlores_spr_filtered_genlock, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +}; diff --git a/linetoscr_ocs_ecs_ntsc.cpp b/linetoscr_ocs_ecs_ntsc.cpp index 886ddd68..078a7f81 100644 --- a/linetoscr_ocs_ecs_ntsc.cpp +++ b/linetoscr_ocs_ecs_ntsc.cpp @@ -62,6 +62,10 @@ static void lts_ecs_fm0_n0_p2_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -123,6 +127,10 @@ static void lts_ecs_fm0_n1_p2_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -182,6 +190,10 @@ static void lts_ecs_fm0_dpf0_p2_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -244,22 +256,42 @@ static void lts_ecs_fm0_dpf1_p2_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ilores_dlores_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ilores_dlores_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ilores_dlores_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ilores_dlores_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -318,6 +350,10 @@ static void lts_ecs_fm0_n0_p4_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -379,6 +415,10 @@ static void lts_ecs_fm0_n1_p4_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -438,6 +478,10 @@ static void lts_ecs_fm0_dpf0_p4_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -500,22 +544,42 @@ static void lts_ecs_fm0_dpf1_p4_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ilores_dlores_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ilores_dlores_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ilores_dlores_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ilores_dlores_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -577,6 +641,10 @@ static void lts_ecs_fm0_n0_p5_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p5_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -641,6 +709,10 @@ static void lts_ecs_fm0_n1_p5_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p5_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -703,6 +775,10 @@ static void lts_ecs_fm0_dpf0_p5_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p5_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -768,14 +844,26 @@ static void lts_ecs_fm0_dpf1_p5_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p5_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ilores_dlores_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ilores_dlores_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -837,6 +925,10 @@ static void lts_ecs_fm0_ham0_p5_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p5_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -901,6 +993,10 @@ static void lts_ecs_fm0_ham1_p5_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p5_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -962,6 +1058,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -1026,6 +1126,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -1088,6 +1192,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -1153,6 +1261,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -1219,6 +1331,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -1288,6 +1404,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -1349,6 +1469,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -1413,6 +1537,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dlores_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dlores_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -1486,6 +1614,10 @@ static void lts_ecs_fm0_n0_p2_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -1562,6 +1694,10 @@ static void lts_ecs_fm0_n1_p2_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -1636,6 +1772,10 @@ static void lts_ecs_fm0_dpf0_p2_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -1713,22 +1853,42 @@ static void lts_ecs_fm0_dpf1_p2_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ilores_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ilores_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ilores_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ilores_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -1802,6 +1962,10 @@ static void lts_ecs_fm0_n0_p4_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -1878,6 +2042,10 @@ static void lts_ecs_fm0_n1_p4_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -1952,6 +2120,10 @@ static void lts_ecs_fm0_dpf0_p4_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -2029,22 +2201,42 @@ static void lts_ecs_fm0_dpf1_p4_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ilores_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ilores_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ilores_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ilores_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -2121,6 +2313,10 @@ static void lts_ecs_fm0_n0_p5_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p5_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -2200,6 +2396,10 @@ static void lts_ecs_fm0_n1_p5_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p5_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -2277,6 +2477,10 @@ static void lts_ecs_fm0_dpf0_p5_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p5_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -2357,14 +2561,26 @@ static void lts_ecs_fm0_dpf1_p5_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p5_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ilores_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ilores_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -2441,6 +2657,10 @@ static void lts_ecs_fm0_ham0_p5_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p5_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -2520,6 +2740,10 @@ static void lts_ecs_fm0_ham1_p5_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p5_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -2596,6 +2820,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -2675,6 +2903,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -2752,6 +2984,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -2832,6 +3068,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -2913,6 +3153,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -2997,6 +3241,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -3073,6 +3321,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -3152,6 +3404,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dlores_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ihires_dlores_ntsc(void) { while (denise_cck < denise_total) { @@ -3223,7 +3479,7 @@ static void lts_ecs_fm0_n0_p2_ihires_dlores_ntsc(void) denise_cck++; } } -static void lts_ecs_fm0_n1_p2_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_n0_p2_ihires_dlores_ntsc_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3261,6 +3517,7 @@ static void lts_ecs_fm0_n1_p2_ihires_dlores_ntsc(void) shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = 0; if (!extblank) { @@ -3275,10 +3532,7 @@ static void lts_ecs_fm0_n1_p2_ihires_dlores_ntsc(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl2e(); - } - if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { - copybpl2o(); + copybpl2(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -3297,7 +3551,7 @@ static void lts_ecs_fm0_n1_p2_ihires_dlores_ntsc(void) denise_cck++; } } -static void lts_ecs_fm0_dpf0_p2_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_n1_p2_ihires_dlores_ntsc(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3315,8 +3569,7 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dlores_ntsc(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = getbpl2(); clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0]; } last_bpl_pix = pix0; } @@ -3329,8 +3582,7 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dlores_ntsc(void) if (denise_hdiw && bpl1dat_trigger) { pix1 = getbpl2(); clxdat |= bplcoltable[pix1]; - uae_u8 val1 = dpf_lookup[pix1]; - dpix_val1 = denise_colors.acolors[val1]; + dpix_val1 = denise_colors.acolors[pix1]; } last_bpl_pix = pix1; } @@ -3351,7 +3603,10 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dlores_ntsc(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl2(); + copybpl2e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl2o(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -3370,7 +3625,7 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dlores_ntsc(void) denise_cck++; } } -static void lts_ecs_fm0_dpf1_p2_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_n1_p2_ihires_dlores_ntsc_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3388,8 +3643,7 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dlores_ntsc(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = getbpl2(); clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0]; } last_bpl_pix = pix0; } @@ -3402,14 +3656,14 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dlores_ntsc(void) if (denise_hdiw && bpl1dat_trigger) { pix1 = getbpl2(); clxdat |= bplcoltable[pix1]; - uae_u8 val1 = dpf_lookup[pix1]; - dpix_val1 = denise_colors.acolors[val1]; + dpix_val1 = denise_colors.acolors[pix1]; } last_bpl_pix = pix1; } shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = 0; if (!extblank) { @@ -3446,23 +3700,7 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dlores_ntsc(void) denise_cck++; } } -static void lts_ecs_fm0_ehb0_p2_ihires_dlores_ntsc(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ehb1_p2_ihires_dlores_ntsc(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ham0_p2_ihires_dlores_ntsc(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ham1_p2_ihires_dlores_ntsc(void) -{ - lts_null(); -} -static void lts_ecs_fm0_n0_p4_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_dpf0_p2_ihires_dlores_ntsc(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3478,26 +3716,28 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores_ntsc(void) if (!denise_blank_active) { dpix_val0 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = getbpl4(); + pix0 = getbpl2(); clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; uae_u8 pix1 = 0; uae_u32 dpix_val1 = BLANK_COLOR; if (!denise_blank_active) { dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix1 = getbpl4(); + pix1 = getbpl2(); clxdat |= bplcoltable[pix1]; - dpix_val1 = denise_colors.acolors[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -3514,7 +3754,7 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores_ntsc(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl4(); + copybpl2(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -3533,7 +3773,7 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores_ntsc(void) denise_cck++; } } -static void lts_ecs_fm0_n1_p4_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_dpf0_p2_ihires_dlores_ntsc_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3549,28 +3789,31 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_ntsc(void) if (!denise_blank_active) { dpix_val0 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = getbpl4(); + pix0 = getbpl2(); clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; uae_u8 pix1 = 0; uae_u32 dpix_val1 = BLANK_COLOR; if (!denise_blank_active) { dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix1 = getbpl4(); + pix1 = getbpl2(); clxdat |= bplcoltable[pix1]; - dpix_val1 = denise_colors.acolors[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = 0; if (!extblank) { @@ -3585,10 +3828,7 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_ntsc(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { - copybpl4o(); + copybpl2(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -3607,7 +3847,7 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_ntsc(void) denise_cck++; } } -static void lts_ecs_fm0_dpf0_p4_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_dpf1_p2_ihires_dlores_ntsc(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3623,28 +3863,28 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dlores_ntsc(void) if (!denise_blank_active) { dpix_val0 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = getbpl4(); + pix0 = getbpl2(); clxdat |= bplcoltable[pix0]; uae_u8 val0 = dpf_lookup[pix0]; dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; uae_u8 pix1 = 0; uae_u32 dpix_val1 = BLANK_COLOR; if (!denise_blank_active) { dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix1 = getbpl4(); + pix1 = getbpl2(); clxdat |= bplcoltable[pix1]; uae_u8 val1 = dpf_lookup[pix1]; dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { dtbuf[h][0] = dpix_val0; @@ -3661,7 +3901,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dlores_ntsc(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl4(); + copybpl2e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl2o(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -3680,7 +3923,7 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dlores_ntsc(void) denise_cck++; } } -static void lts_ecs_fm0_dpf1_p4_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_dpf1_p2_ihires_dlores_ntsc_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3696,30 +3939,31 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dlores_ntsc(void) if (!denise_blank_active) { dpix_val0 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = getbpl4(); + pix0 = getbpl2(); clxdat |= bplcoltable[pix0]; uae_u8 val0 = dpf_lookup[pix0]; dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; uae_u8 pix1 = 0; uae_u32 dpix_val1 = BLANK_COLOR; if (!denise_blank_active) { dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix1 = getbpl4(); + pix1 = getbpl2(); clxdat |= bplcoltable[pix1]; uae_u8 val1 = dpf_lookup[pix1]; dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } - shiftbpl4(); + shiftbpl2(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; uae_u32 t0 = 0; if (!extblank) { @@ -3734,10 +3978,10 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dlores_ntsc(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl4e(); + copybpl2e(); } if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { - copybpl4o(); + copybpl2o(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -3756,87 +4000,1539 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dlores_ntsc(void) denise_cck++; } } -static void lts_ecs_fm0_ehb0_p4_ihires_dlores_ntsc(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ehb1_p4_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_ehb0_p2_ihires_dlores_ntsc(void) { lts_null(); } -static void lts_ecs_fm0_ham0_p4_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_ehb0_p2_ihires_dlores_ntsc_filtered(void) { lts_null(); } -static void lts_ecs_fm0_ham1_p4_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_ehb1_p2_ihires_dlores_ntsc(void) { lts_null(); } -static void lts_ecs_fm0_n0_p5_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_ehb1_p2_ihires_dlores_ntsc_filtered(void) { lts_null(); } -static void lts_ecs_fm0_n1_p5_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_ham0_p2_ihires_dlores_ntsc(void) { lts_null(); } -static void lts_ecs_fm0_dpf0_p5_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_ham0_p2_ihires_dlores_ntsc_filtered(void) { lts_null(); } -static void lts_ecs_fm0_dpf1_p5_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_ham1_p2_ihires_dlores_ntsc(void) { lts_null(); } -static void lts_ecs_fm0_ehb0_p5_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_ham1_p2_ihires_dlores_ntsc_filtered(void) { lts_null(); } -static void lts_ecs_fm0_ehb1_p5_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_n0_p4_ihires_dlores_ntsc(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_ecs_fm0_ham0_p5_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_n0_p4_ihires_dlores_ntsc_filtered(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_ecs_fm0_ham1_p5_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_n1_p4_ihires_dlores_ntsc(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_n1_p4_ihires_dlores_ntsc_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_dpf0_p4_ihires_dlores_ntsc(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_dpf0_p4_ihires_dlores_ntsc_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_dpf1_p4_ihires_dlores_ntsc(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_dpf1_p4_ihires_dlores_ntsc_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_ehb0_p4_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p4_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p4_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p4_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p4_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p4_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p4_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p4_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n0_p5_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n0_p5_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n1_p5_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n1_p5_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf0_p5_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf0_p5_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf1_p5_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf1_p5_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p5_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p5_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p5_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p5_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p5_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p5_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p5_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p5_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n0_p6_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n0_p6_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n1_p6_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n1_p6_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf0_p6_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf0_p6_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf1_p6_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf1_p6_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p6_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p6_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p6_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p6_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p6_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p6_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p6_ihires_dlores_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p6_ihires_dlores_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n0_p2_ihires_dlores_spr_ntsc(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl2(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl2(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl2(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_n0_p2_ihires_dlores_spr_ntsc_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl2(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl2(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl2(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_n1_p2_ihires_dlores_spr_ntsc(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl2(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl2(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl2o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_n1_p2_ihires_dlores_spr_ntsc_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl2(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl2(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl2o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_dpf0_p2_ihires_dlores_spr_ntsc(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl2(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl2(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl2(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_dpf0_p2_ihires_dlores_spr_ntsc_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl2(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl2(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl2(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_dpf1_p2_ihires_dlores_spr_ntsc(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl2(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl2(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl2o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_dpf1_p2_ihires_dlores_spr_ntsc_filtered(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl2(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + } + last_bpl_pix = pix0; + } + shiftbpl2(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl2(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + } + last_bpl_pix = pix1; + } + shiftbpl2(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; + } + } + dtbuf[h][0] = dpix_val0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl2e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl2o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_ecs_fm0_n0_p6_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_ehb0_p2_ihires_dlores_spr_ntsc(void) { lts_null(); } -static void lts_ecs_fm0_n1_p6_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_ehb0_p2_ihires_dlores_spr_ntsc_filtered(void) { lts_null(); } -static void lts_ecs_fm0_dpf0_p6_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_ehb1_p2_ihires_dlores_spr_ntsc(void) { lts_null(); } -static void lts_ecs_fm0_dpf1_p6_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_ehb1_p2_ihires_dlores_spr_ntsc_filtered(void) { lts_null(); } -static void lts_ecs_fm0_ehb0_p6_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_ham0_p2_ihires_dlores_spr_ntsc(void) { lts_null(); } -static void lts_ecs_fm0_ehb1_p6_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_ham0_p2_ihires_dlores_spr_ntsc_filtered(void) { lts_null(); } -static void lts_ecs_fm0_ham0_p6_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_ham1_p2_ihires_dlores_spr_ntsc(void) { lts_null(); } -static void lts_ecs_fm0_ham1_p6_ihires_dlores_ntsc(void) +static void lts_ecs_fm0_ham1_p2_ihires_dlores_spr_ntsc_filtered(void) { lts_null(); } -static void lts_ecs_fm0_n0_p2_ihires_dlores_spr_ntsc(void) +static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3853,13 +5549,13 @@ static void lts_ecs_fm0_n0_p2_ihires_dlores_spr_ntsc(void) if (!denise_blank_active) { dpix_val0 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = getbpl2(); + pix0 = getbpl4(); clxdat |= bplcoltable[pix0]; dpix_val0 = denise_colors.acolors[pix0]; } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl4(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -3874,13 +5570,13 @@ static void lts_ecs_fm0_n0_p2_ihires_dlores_spr_ntsc(void) if (!denise_blank_active) { dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix1 = getbpl2(); + pix1 = getbpl4(); clxdat |= bplcoltable[pix1]; dpix_val1 = denise_colors.acolors[pix1]; } last_bpl_pix = pix1; } - shiftbpl2(); + shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -3903,7 +5599,7 @@ static void lts_ecs_fm0_n0_p2_ihires_dlores_spr_ntsc(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl2(); + copybpl4(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -3922,7 +5618,7 @@ static void lts_ecs_fm0_n0_p2_ihires_dlores_spr_ntsc(void) denise_cck++; } } -static void lts_ecs_fm0_n1_p2_ihires_dlores_spr_ntsc(void) +static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_ntsc_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -3939,13 +5635,13 @@ static void lts_ecs_fm0_n1_p2_ihires_dlores_spr_ntsc(void) if (!denise_blank_active) { dpix_val0 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = getbpl2(); + pix0 = getbpl4(); clxdat |= bplcoltable[pix0]; dpix_val0 = denise_colors.acolors[pix0]; } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl4(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -3960,19 +5656,21 @@ static void lts_ecs_fm0_n1_p2_ihires_dlores_spr_ntsc(void) if (!denise_blank_active) { dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix1 = getbpl2(); + pix1 = getbpl4(); clxdat |= bplcoltable[pix1]; dpix_val1 = denise_colors.acolors[pix1]; } last_bpl_pix = pix1; } - shiftbpl2(); + shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } dtbuf[h][0] = dpix_val0; @@ -3989,10 +5687,7 @@ static void lts_ecs_fm0_n1_p2_ihires_dlores_spr_ntsc(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl2e(); - } - if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { - copybpl2o(); + copybpl4(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -4011,7 +5706,7 @@ static void lts_ecs_fm0_n1_p2_ihires_dlores_spr_ntsc(void) denise_cck++; } } -static void lts_ecs_fm0_dpf0_p2_ihires_dlores_spr_ntsc(void) +static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4028,14 +5723,13 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dlores_spr_ntsc(void) if (!denise_blank_active) { dpix_val0 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = getbpl2(); + pix0 = getbpl4(); clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0]; } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl4(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -4050,14 +5744,13 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dlores_spr_ntsc(void) if (!denise_blank_active) { dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix1 = getbpl2(); + pix1 = getbpl4(); clxdat |= bplcoltable[pix1]; - uae_u8 val1 = dpf_lookup[pix1]; - dpix_val1 = denise_colors.acolors[val1]; + dpix_val1 = denise_colors.acolors[pix1]; } last_bpl_pix = pix1; } - shiftbpl2(); + shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { if (sv0) { @@ -4080,7 +5773,10 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dlores_spr_ntsc(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl2(); + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -4099,7 +5795,7 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dlores_spr_ntsc(void) denise_cck++; } } -static void lts_ecs_fm0_dpf1_p2_ihires_dlores_spr_ntsc(void) +static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_ntsc_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4116,14 +5812,13 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dlores_spr_ntsc(void) if (!denise_blank_active) { dpix_val0 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix0 = getbpl2(); + pix0 = getbpl4(); clxdat |= bplcoltable[pix0]; - uae_u8 val0 = dpf_lookup[pix0]; - dpix_val0 = denise_colors.acolors[val0]; + dpix_val0 = denise_colors.acolors[pix0]; } last_bpl_pix = pix0; } - shiftbpl2(); + shiftbpl4(); uae_u32 sv0 = 0; if (denise_spr_nr_armeds) { uae_u32 svt; @@ -4138,20 +5833,21 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dlores_spr_ntsc(void) if (!denise_blank_active) { dpix_val1 = bordercolor; if (denise_hdiw && bpl1dat_trigger) { - pix1 = getbpl2(); + pix1 = getbpl4(); clxdat |= bplcoltable[pix1]; - uae_u8 val1 = dpf_lookup[pix1]; - dpix_val1 = denise_colors.acolors[val1]; + dpix_val1 = denise_colors.acolors[pix1]; } last_bpl_pix = pix1; } - shiftbpl2(); + shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } dtbuf[h][0] = dpix_val0; @@ -4168,10 +5864,10 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dlores_spr_ntsc(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl2e(); + copybpl4e(); } if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { - copybpl2o(); + copybpl4o(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -4190,23 +5886,7 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dlores_spr_ntsc(void) denise_cck++; } } -static void lts_ecs_fm0_ehb0_p2_ihires_dlores_spr_ntsc(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ehb1_p2_ihires_dlores_spr_ntsc(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ham0_p2_ihires_dlores_spr_ntsc(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ham1_p2_ihires_dlores_spr_ntsc(void) -{ - lts_null(); -} -static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_ntsc(void) +static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4225,7 +5905,8 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_ntsc(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = getbpl4(); clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } @@ -4246,7 +5927,8 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_ntsc(void) if (denise_hdiw && bpl1dat_trigger) { pix1 = getbpl4(); clxdat |= bplcoltable[pix1]; - dpix_val1 = denise_colors.acolors[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } @@ -4292,7 +5974,7 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_ntsc(void) denise_cck++; } } -static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_ntsc(void) +static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_ntsc_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4311,7 +5993,8 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_ntsc(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = getbpl4(); clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; } last_bpl_pix = pix0; } @@ -4332,17 +6015,20 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_ntsc(void) if (denise_hdiw && bpl1dat_trigger) { pix1 = getbpl4(); clxdat |= bplcoltable[pix1]; - dpix_val1 = denise_colors.acolors[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; } last_bpl_pix = pix1; } shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } dtbuf[h][0] = dpix_val0; @@ -4359,10 +6045,7 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_ntsc(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { - copybpl4o(); + copybpl4(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -4381,7 +6064,7 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_ntsc(void) denise_cck++; } } -static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_ntsc(void) +static void lts_ecs_fm0_dpf1_p4_ihires_dlores_spr_ntsc(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4450,7 +6133,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_ntsc(void) *buf2++ = t0; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl4(); + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -4469,7 +6155,7 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_ntsc(void) denise_cck++; } } -static void lts_ecs_fm0_dpf1_p4_ihires_dlores_spr_ntsc(void) +static void lts_ecs_fm0_dpf1_p4_ihires_dlores_spr_ntsc_filtered(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -4518,10 +6204,12 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dlores_spr_ntsc(void) shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; + dpix_val1 = dpix_val0; } } dtbuf[h][0] = dpix_val0; @@ -4564,82 +6252,162 @@ static void lts_ecs_fm0_ehb0_p4_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_n0_p5_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_n1_p5_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_dpf0_p5_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_dpf1_p5_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p5_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p5_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_n0_p6_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_n1_p6_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_dpf0_p6_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_dpf1_p6_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p6_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p6_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p6_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ihires_dlores_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p6_ihires_dlores_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -4713,6 +6481,10 @@ static void lts_ecs_fm0_n0_p2_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -4789,6 +6561,10 @@ static void lts_ecs_fm0_n1_p2_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -4863,6 +6639,10 @@ static void lts_ecs_fm0_dpf0_p2_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -4940,22 +6720,42 @@ static void lts_ecs_fm0_dpf1_p2_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ilores_dhires_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ilores_dhires_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ilores_dhires_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ilores_dhires_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -5029,6 +6829,10 @@ static void lts_ecs_fm0_n0_p4_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -5105,6 +6909,10 @@ static void lts_ecs_fm0_n1_p4_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -5179,6 +6987,10 @@ static void lts_ecs_fm0_dpf0_p4_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -5256,7 +7068,15 @@ static void lts_ecs_fm0_dpf1_p4_ilores_dhires_ntsc(void) denise_cck++; } } -static void lts_ecs_fm0_ehb0_p4_ilores_dhires_ntsc(void) +static void lts_ecs_fm0_dpf1_p4_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p4_ilores_dhires_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p4_ilores_dhires_ntsc_filtered(void) { lts_null(); } @@ -5264,14 +7084,26 @@ static void lts_ecs_fm0_ehb1_p4_ilores_dhires_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ilores_dhires_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ilores_dhires_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -5348,6 +7180,10 @@ static void lts_ecs_fm0_n0_p5_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p5_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -5427,6 +7263,10 @@ static void lts_ecs_fm0_n1_p5_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p5_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -5504,6 +7344,10 @@ static void lts_ecs_fm0_dpf0_p5_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p5_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -5584,14 +7428,26 @@ static void lts_ecs_fm0_dpf1_p5_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p5_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ilores_dhires_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ilores_dhires_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -5668,6 +7524,10 @@ static void lts_ecs_fm0_ham0_p5_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p5_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -5747,6 +7607,10 @@ static void lts_ecs_fm0_ham1_p5_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p5_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -5823,6 +7687,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -5902,6 +7770,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -5979,6 +7851,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -6059,6 +7935,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -6140,6 +8020,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -6224,6 +8108,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -6300,6 +8188,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -6379,6 +8271,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -6468,6 +8364,10 @@ static void lts_ecs_fm0_n0_p2_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -6560,6 +8460,10 @@ static void lts_ecs_fm0_n1_p2_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -6650,6 +8554,10 @@ static void lts_ecs_fm0_dpf0_p2_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -6743,22 +8651,42 @@ static void lts_ecs_fm0_dpf1_p2_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ilores_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ilores_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ilores_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ilores_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -6848,6 +8776,10 @@ static void lts_ecs_fm0_n0_p4_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -6940,6 +8872,10 @@ static void lts_ecs_fm0_n1_p4_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -7030,6 +8966,10 @@ static void lts_ecs_fm0_dpf0_p4_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -7123,22 +9063,42 @@ static void lts_ecs_fm0_dpf1_p4_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ilores_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ilores_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ilores_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ilores_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -7231,6 +9191,10 @@ static void lts_ecs_fm0_n0_p5_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p5_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -7326,6 +9290,10 @@ static void lts_ecs_fm0_n1_p5_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p5_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -7419,6 +9387,10 @@ static void lts_ecs_fm0_dpf0_p5_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p5_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -7515,14 +9487,26 @@ static void lts_ecs_fm0_dpf1_p5_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p5_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ilores_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ilores_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -7615,6 +9599,10 @@ static void lts_ecs_fm0_ham0_p5_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p5_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -7710,6 +9698,10 @@ static void lts_ecs_fm0_ham1_p5_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p5_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -7802,6 +9794,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -7897,6 +9893,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -7990,6 +9990,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -8086,6 +10090,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -8183,6 +10191,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -8283,6 +10295,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -8375,6 +10391,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -8470,6 +10490,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ihires_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -8553,6 +10577,10 @@ static void lts_ecs_fm0_n0_p2_ihires_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ihires_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -8639,6 +10667,10 @@ static void lts_ecs_fm0_n1_p2_ihires_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ihires_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -8724,6 +10756,10 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ihires_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -8812,22 +10848,42 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ihires_dhires_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ihires_dhires_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ihires_dhires_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ihires_dhires_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ihires_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -8911,6 +10967,10 @@ static void lts_ecs_fm0_n0_p4_ihires_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ihires_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -8997,6 +11057,10 @@ static void lts_ecs_fm0_n1_p4_ihires_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ihires_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -9082,6 +11146,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ihires_dhires_ntsc(void) { while (denise_cck < denise_total) { @@ -9170,79 +11238,159 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dhires_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ihires_dhires_ntsc(void) { lts_null(); } -static void lts_ecs_fm0_ehb1_p4_ihires_dhires_ntsc(void) +static void lts_ecs_fm0_ehb0_p4_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p4_ihires_dhires_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p4_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p4_ihires_dhires_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p4_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p4_ihires_dhires_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p4_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n0_p5_ihires_dhires_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n0_p5_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n1_p5_ihires_dhires_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n1_p5_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf0_p5_ihires_dhires_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf0_p5_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf1_p5_ihires_dhires_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_dpf1_p5_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p5_ihires_dhires_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p5_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p5_ihires_dhires_ntsc(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p5_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p5_ihires_dhires_ntsc(void) { lts_null(); } -static void lts_ecs_fm0_ham0_p4_ihires_dhires_ntsc(void) +static void lts_ecs_fm0_ham0_p5_ihires_dhires_ntsc_filtered(void) { lts_null(); } -static void lts_ecs_fm0_ham1_p4_ihires_dhires_ntsc(void) +static void lts_ecs_fm0_ham1_p5_ihires_dhires_ntsc(void) { lts_null(); } -static void lts_ecs_fm0_n0_p5_ihires_dhires_ntsc(void) +static void lts_ecs_fm0_ham1_p5_ihires_dhires_ntsc_filtered(void) { lts_null(); } -static void lts_ecs_fm0_n1_p5_ihires_dhires_ntsc(void) +static void lts_ecs_fm0_n0_p6_ihires_dhires_ntsc(void) { lts_null(); } -static void lts_ecs_fm0_dpf0_p5_ihires_dhires_ntsc(void) +static void lts_ecs_fm0_n0_p6_ihires_dhires_ntsc_filtered(void) { lts_null(); } -static void lts_ecs_fm0_dpf1_p5_ihires_dhires_ntsc(void) +static void lts_ecs_fm0_n1_p6_ihires_dhires_ntsc(void) { lts_null(); } -static void lts_ecs_fm0_ehb0_p5_ihires_dhires_ntsc(void) +static void lts_ecs_fm0_n1_p6_ihires_dhires_ntsc_filtered(void) { lts_null(); } -static void lts_ecs_fm0_ehb1_p5_ihires_dhires_ntsc(void) +static void lts_ecs_fm0_dpf0_p6_ihires_dhires_ntsc(void) { lts_null(); } -static void lts_ecs_fm0_ham0_p5_ihires_dhires_ntsc(void) +static void lts_ecs_fm0_dpf0_p6_ihires_dhires_ntsc_filtered(void) { lts_null(); } -static void lts_ecs_fm0_ham1_p5_ihires_dhires_ntsc(void) +static void lts_ecs_fm0_dpf1_p6_ihires_dhires_ntsc(void) { lts_null(); } -static void lts_ecs_fm0_n0_p6_ihires_dhires_ntsc(void) +static void lts_ecs_fm0_dpf1_p6_ihires_dhires_ntsc_filtered(void) { lts_null(); } -static void lts_ecs_fm0_n1_p6_ihires_dhires_ntsc(void) +static void lts_ecs_fm0_ehb0_p6_ihires_dhires_ntsc(void) { lts_null(); } -static void lts_ecs_fm0_dpf0_p6_ihires_dhires_ntsc(void) +static void lts_ecs_fm0_ehb0_p6_ihires_dhires_ntsc_filtered(void) { lts_null(); } -static void lts_ecs_fm0_dpf1_p6_ihires_dhires_ntsc(void) +static void lts_ecs_fm0_ehb1_p6_ihires_dhires_ntsc(void) { lts_null(); } -static void lts_ecs_fm0_ehb0_p6_ihires_dhires_ntsc(void) +static void lts_ecs_fm0_ehb1_p6_ihires_dhires_ntsc_filtered(void) { lts_null(); } -static void lts_ecs_fm0_ehb1_p6_ihires_dhires_ntsc(void) +static void lts_ecs_fm0_ham0_p6_ihires_dhires_ntsc(void) { lts_null(); } -static void lts_ecs_fm0_ham0_p6_ihires_dhires_ntsc(void) +static void lts_ecs_fm0_ham0_p6_ihires_dhires_ntsc_filtered(void) { lts_null(); } @@ -9250,6 +11398,10 @@ static void lts_ecs_fm0_ham1_p6_ihires_dhires_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p6_ihires_dhires_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ihires_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -9355,6 +11507,10 @@ static void lts_ecs_fm0_n0_p2_ihires_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ihires_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -9463,6 +11619,10 @@ static void lts_ecs_fm0_n1_p2_ihires_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ihires_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -9570,6 +11730,10 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ihires_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -9680,22 +11844,42 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ihires_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -9801,6 +11985,10 @@ static void lts_ecs_fm0_n0_p4_ihires_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ihires_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -9909,6 +12097,10 @@ static void lts_ecs_fm0_n1_p4_ihires_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ihires_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -10016,6 +12208,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ihires_dhires_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -10126,86 +12322,170 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dhires_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_n0_p5_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_n1_p5_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_dpf0_p5_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_dpf1_p5_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p5_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p5_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_n0_p6_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_n1_p6_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_dpf0_p6_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_dpf1_p6_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p6_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p6_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p6_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ihires_dhires_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p6_ihires_dhires_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -10309,6 +12589,10 @@ static void lts_ecs_fm0_n0_p2_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -10415,6 +12699,10 @@ static void lts_ecs_fm0_n1_p2_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -10519,6 +12807,10 @@ static void lts_ecs_fm0_dpf0_p2_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -10626,22 +12918,42 @@ static void lts_ecs_fm0_dpf1_p2_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ilores_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ilores_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ilores_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ilores_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -10745,6 +13057,10 @@ static void lts_ecs_fm0_n0_p4_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -10851,6 +13167,10 @@ static void lts_ecs_fm0_n1_p4_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -10955,6 +13275,10 @@ static void lts_ecs_fm0_dpf0_p4_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -11062,22 +13386,42 @@ static void lts_ecs_fm0_dpf1_p4_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ilores_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ilores_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ilores_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ilores_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -11184,6 +13528,10 @@ static void lts_ecs_fm0_n0_p5_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p5_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -11293,6 +13641,10 @@ static void lts_ecs_fm0_n1_p5_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p5_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -11400,6 +13752,10 @@ static void lts_ecs_fm0_dpf0_p5_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p5_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -11510,14 +13866,26 @@ static void lts_ecs_fm0_dpf1_p5_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p5_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ilores_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ilores_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -11624,6 +13992,10 @@ static void lts_ecs_fm0_ham0_p5_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p5_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -11733,6 +14105,10 @@ static void lts_ecs_fm0_ham1_p5_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p5_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -11839,6 +14215,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -11948,6 +14328,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -12055,6 +14439,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -12165,6 +14553,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -12276,6 +14668,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -12390,6 +14786,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -12496,6 +14896,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -12605,6 +15009,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -12726,6 +15134,10 @@ static void lts_ecs_fm0_n0_p2_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -12850,6 +15262,10 @@ static void lts_ecs_fm0_n1_p2_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -12972,6 +15388,10 @@ static void lts_ecs_fm0_dpf0_p2_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -13097,22 +15517,42 @@ static void lts_ecs_fm0_dpf1_p2_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ilores_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ilores_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ilores_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ilores_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -13234,6 +15674,10 @@ static void lts_ecs_fm0_n0_p4_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -13358,6 +15802,10 @@ static void lts_ecs_fm0_n1_p4_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -13480,6 +15928,10 @@ static void lts_ecs_fm0_dpf0_p4_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -13605,22 +16057,42 @@ static void lts_ecs_fm0_dpf1_p4_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ilores_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ilores_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ilores_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ilores_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -13745,6 +16217,10 @@ static void lts_ecs_fm0_n0_p5_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p5_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -13872,6 +16348,10 @@ static void lts_ecs_fm0_n1_p5_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p5_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -13997,6 +16477,10 @@ static void lts_ecs_fm0_dpf0_p5_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p5_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -14125,14 +16609,26 @@ static void lts_ecs_fm0_dpf1_p5_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p5_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ilores_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ilores_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -14257,6 +16753,10 @@ static void lts_ecs_fm0_ham0_p5_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p5_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -14384,6 +16884,10 @@ static void lts_ecs_fm0_ham1_p5_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p5_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -14508,6 +17012,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -14635,6 +17143,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -14760,6 +17272,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -14888,6 +17404,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -15017,6 +17537,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -15149,6 +17673,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -15273,6 +17801,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -15400,6 +17932,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ihires_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -15513,6 +18049,10 @@ static void lts_ecs_fm0_n0_p2_ihires_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ihires_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -15629,6 +18169,10 @@ static void lts_ecs_fm0_n1_p2_ihires_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ihires_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -15744,6 +18288,10 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ihires_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -15862,22 +18410,42 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ihires_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -15991,6 +18559,10 @@ static void lts_ecs_fm0_n0_p4_ihires_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ihires_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -16107,6 +18679,10 @@ static void lts_ecs_fm0_n1_p4_ihires_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ihires_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -16222,6 +18798,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ihires_dshres_ntsc(void) { while (denise_cck < denise_total) { @@ -16340,86 +18920,170 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dshres_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_n0_p5_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_n1_p5_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_dpf0_p5_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_dpf1_p5_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p5_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p5_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_n0_p6_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_n1_p6_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_dpf0_p6_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_dpf1_p6_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p6_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p6_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p6_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ihires_dshres_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p6_ihires_dshres_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p2_ihires_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -16569,6 +19233,10 @@ static void lts_ecs_fm0_n0_p2_ihires_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p2_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p2_ihires_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -16721,6 +19389,10 @@ static void lts_ecs_fm0_n1_p2_ihires_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p2_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p2_ihires_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -16872,6 +19544,10 @@ static void lts_ecs_fm0_dpf0_p2_ihires_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p2_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p2_ihires_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -17026,22 +19702,42 @@ static void lts_ecs_fm0_dpf1_p2_ihires_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p2_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p2_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p2_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p2_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p2_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p2_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p2_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p2_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p2_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ihires_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -17191,6 +19887,10 @@ static void lts_ecs_fm0_n0_p4_ihires_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ihires_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -17343,6 +20043,10 @@ static void lts_ecs_fm0_n1_p4_ihires_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ihires_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -17494,6 +20198,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ihires_dshres_spr_ntsc(void) { while (denise_cck < denise_total) { @@ -17648,86 +20356,170 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dshres_spr_ntsc(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p5_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_n0_p5_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p5_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_n1_p5_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p5_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_dpf0_p5_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p5_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_dpf1_p5_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p5_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p5_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p5_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p5_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p5_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p5_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p5_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p5_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_n0_p6_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_n1_p6_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_dpf0_p6_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_dpf1_p6_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p6_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p6_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p6_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ihires_dshres_spr_ntsc(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p6_ihires_dshres_spr_ntsc_filtered(void) +{ + lts_null(); +} static LINETOSRC_FUNC linetoscr_ecs_ntsc_funcs[] = { lts_ecs_fm0_n0_p2_ilores_dlores_ntsc, lts_ecs_fm0_n1_p2_ilores_dlores_ntsc, @@ -18115,3 +20907,390 @@ static LINETOSRC_FUNC linetoscr_ecs_ntsc_funcs[] = { lts_ecs_fm0_ham1_p6_ihires_dshres_spr_ntsc, NULL }; +static LINETOSRC_FUNC linetoscr_ecs_ntsc_funcs_filtered[] = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_ecs_fm0_n0_p2_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_n1_p2_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_dpf0_p2_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_dpf1_p2_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_ehb0_p2_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_ehb1_p2_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_ham0_p2_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_ham1_p2_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_n0_p4_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_n1_p4_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_dpf0_p4_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_dpf1_p4_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_ehb0_p4_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_ehb1_p4_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_ham0_p4_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_ham1_p4_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_n0_p5_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_n1_p5_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_dpf0_p5_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_dpf1_p5_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_ehb0_p5_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_ehb1_p5_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_ham0_p5_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_ham1_p5_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_n0_p6_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_n1_p6_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_dpf0_p6_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_dpf1_p6_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_ehb0_p6_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_ehb1_p6_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_ham0_p6_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_ham1_p6_ihires_dlores_ntsc_filtered, + lts_ecs_fm0_n0_p2_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_n1_p2_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_dpf0_p2_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_dpf1_p2_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_ehb0_p2_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_ehb1_p2_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_ham0_p2_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_ham1_p2_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_n0_p4_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_n1_p4_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_dpf1_p4_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_ehb0_p4_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_ehb1_p4_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_ham0_p4_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_ham1_p4_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_n0_p5_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_n1_p5_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_dpf0_p5_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_dpf1_p5_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_ehb0_p5_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_ehb1_p5_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_ham0_p5_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_ham1_p5_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_n0_p6_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_n1_p6_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_dpf0_p6_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_dpf1_p6_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_ehb0_p6_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_ehb1_p6_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_ham0_p6_ihires_dlores_spr_ntsc_filtered, + lts_ecs_fm0_ham1_p6_ihires_dlores_spr_ntsc_filtered, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +}; diff --git a/linetoscr_ocs_ecs_ntsc_genlock.cpp b/linetoscr_ocs_ecs_ntsc_genlock.cpp index de174722..e62ec80c 100644 --- a/linetoscr_ocs_ecs_ntsc_genlock.cpp +++ b/linetoscr_ocs_ecs_ntsc_genlock.cpp @@ -70,6 +70,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dlores_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dlores_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dlores_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -139,6 +143,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dlores_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dlores_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dlores_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -206,6 +214,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dlores_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dlores_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dlores_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -276,6 +288,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dlores_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dlores_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dlores_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -347,6 +363,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dlores_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dlores_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dlores_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -421,6 +441,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dlores_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dlores_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dlores_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -487,6 +511,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dlores_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dlores_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dlores_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -556,6 +584,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dlores_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dlores_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dlores_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -639,6 +671,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dlores_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dlores_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dlores_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -725,6 +761,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dlores_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dlores_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dlores_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -809,6 +849,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dlores_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dlores_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dlores_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -896,6 +940,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dlores_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dlores_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dlores_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -984,6 +1032,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dlores_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dlores_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dlores_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -1075,6 +1127,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dlores_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dlores_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dlores_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -1158,6 +1214,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dlores_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dlores_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dlores_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -1244,6 +1304,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dlores_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dlores_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ihires_dlores_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -1323,6 +1387,86 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ihires_dlores_ntsc_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + gpix0 = get_genlock_transparency(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + gpix1 = get_genlock_transparency(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} static void lts_ecs_fm0_n1_p4_ihires_dlores_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -1405,6 +1549,89 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ihires_dlores_ntsc_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + gpix0 = get_genlock_transparency(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + gpix1 = get_genlock_transparency(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} static void lts_ecs_fm0_dpf0_p4_ihires_dlores_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -1486,7 +1713,7 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dlores_ntsc_genlock(void) denise_cck++; } } -static void lts_ecs_fm0_dpf1_p4_ihires_dlores_ntsc_genlock(void) +static void lts_ecs_fm0_dpf0_p4_ihires_dlores_ntsc_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1532,6 +1759,7 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dlores_ntsc_genlock(void) shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); dtbuf[h][0] = dpix_val0; dtgbuf[h][0] = gpix0; uae_u32 t0 = 0; @@ -1548,10 +1776,7 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dlores_ntsc_genlock(void) *gbuf++ = dtgbuf[h ^ lol][0]; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { - copybpl4o(); + copybpl4(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -1570,23 +1795,602 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dlores_ntsc_genlock(void) denise_cck++; } } -static void lts_ecs_fm0_ehb0_p4_ihires_dlores_ntsc_genlock(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ehb1_p4_ihires_dlores_ntsc_genlock(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ham0_p4_ihires_dlores_ntsc_genlock(void) -{ - lts_null(); -} -static void lts_ecs_fm0_ham1_p4_ihires_dlores_ntsc_genlock(void) +static void lts_ecs_fm0_dpf1_p4_ihires_dlores_ntsc_genlock(void) { - lts_null(); + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_dpf1_p4_ihires_dlores_ntsc_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_ehb0_p4_ihires_dlores_ntsc_genlock(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb0_p4_ihires_dlores_ntsc_filtered_genlock(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p4_ihires_dlores_ntsc_genlock(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ehb1_p4_ihires_dlores_ntsc_filtered_genlock(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p4_ihires_dlores_ntsc_genlock(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham0_p4_ihires_dlores_ntsc_filtered_genlock(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p4_ihires_dlores_ntsc_genlock(void) +{ + lts_null(); +} +static void lts_ecs_fm0_ham1_p4_ihires_dlores_ntsc_filtered_genlock(void) +{ + lts_null(); +} +static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_ntsc_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + gpix0 = get_genlock_transparency(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + gpix1 = get_genlock_transparency(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_ntsc_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + gpix0 = get_genlock_transparency(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + gpix1 = get_genlock_transparency(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_ntsc_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + gpix0 = get_genlock_transparency(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + gpix1 = get_genlock_transparency(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } +} +static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_ntsc_filtered_genlock(void) +{ + while (denise_cck < denise_total) { + do_denise_cck(denise_linecnt, denise_startpos, denise_cck); + if (lts_changed) return; + for (int h = 0; h < 2; h++) { + if (h) { + denise_hcounter_next = denise_hcounter_new; + } + int cnt = denise_hcounter << 2; + if (checkhorizontal1_ecs(denise_hcounter, denise_hcounter_next, h)) continue; + matchsprites(cnt + 0); + uae_u8 pix0 = 0; + uae_u8 gpix0 = 0xff; + uae_u32 dpix_val0 = BLANK_COLOR; + if (!denise_blank_active) { + gpix0 = get_genlock_transparency_border(); + dpix_val0 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix0 = getbpl4(); + clxdat |= bplcoltable[pix0]; + dpix_val0 = denise_colors.acolors[pix0]; + gpix0 = get_genlock_transparency(pix0); + } + last_bpl_pix = pix0; + } + shiftbpl4(); + uae_u32 sv0 = 0; + if (denise_spr_nr_armeds) { + uae_u32 svt; + svt = denise_render_sprites_lores(); + if (!denise_sprite_blank_active && !sprites_hidden) { + sv0 = svt; + } + } + internal_pixel_cnt += 2; + uae_u8 pix1 = 0; + uae_u8 gpix1 = 0xff; + uae_u32 dpix_val1 = BLANK_COLOR; + if (!denise_blank_active) { + gpix1 = get_genlock_transparency_border(); + dpix_val1 = bordercolor; + if (denise_hdiw && bpl1dat_trigger) { + pix1 = getbpl4(); + clxdat |= bplcoltable[pix1]; + dpix_val1 = denise_colors.acolors[pix1]; + gpix1 = get_genlock_transparency(pix1); + } + last_bpl_pix = pix1; + } + shiftbpl4(); + internal_pixel_cnt += 2; + if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); + if (sv0) { + uae_u32 spix0 = denise_render_sprites2(pix0, sv0); + if (spix0) { + dpix_val0 = denise_colors.acolors[spix0]; + gpix0 = get_genlock_transparency(spix0); + + dpix_val1 = dpix_val0; + } + } + dtbuf[h][0] = dpix_val0; + dtgbuf[h][0] = gpix0; + uae_u32 t0 = 0; + if (!extblank) { + t0 = dtbuf[h ^ lol][0]; + } + #ifdef DEBUGGER + if (decode_specials_debug) { + t0 = decode_denise_specials_debug(t0, cnt + 0); + } + #endif + *buf1++ = t0; + *buf2++ = t0; + *gbuf++ = dtgbuf[h ^ lol][0]; + } + if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); + } + sprites_hidden = sprites_hidden2; + #ifdef DEBUGGER + *debug_dma_dhpos_odd = denise_hcounter; + #endif + denise_hcounter++; + denise_hcounter &= 511; + denise_hcounter_next++; + denise_hcounter_next &= 511; + } + denise_pixtotal++; + if (denise_pixtotal == 0) { + internal_pixel_start_cnt = internal_pixel_cnt; + } + denise_hcounter = denise_hcounter_new; + denise_cck++; + } } -static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_ntsc_genlock(void) +static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1607,8 +2411,9 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_ntsc_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = getbpl4(); clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0]; - gpix0 = get_genlock_transparency(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } @@ -1631,8 +2436,9 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_ntsc_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix1 = getbpl4(); clxdat |= bplcoltable[pix1]; - dpix_val1 = denise_colors.acolors[pix1]; - gpix1 = get_genlock_transparency(pix1); + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); } last_bpl_pix = pix1; } @@ -1682,7 +2488,7 @@ static void lts_ecs_fm0_n0_p4_ihires_dlores_spr_ntsc_genlock(void) denise_cck++; } } -static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_ntsc_genlock(void) +static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_ntsc_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1703,8 +2509,9 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_ntsc_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix0 = getbpl4(); clxdat |= bplcoltable[pix0]; - dpix_val0 = denise_colors.acolors[pix0]; - gpix0 = get_genlock_transparency(pix0); + uae_u8 val0 = dpf_lookup[pix0]; + dpix_val0 = denise_colors.acolors[val0]; + gpix0 = get_genlock_transparency(dpf_lookup[pix0]); } last_bpl_pix = pix0; } @@ -1727,20 +2534,23 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_ntsc_genlock(void) if (denise_hdiw && bpl1dat_trigger) { pix1 = getbpl4(); clxdat |= bplcoltable[pix1]; - dpix_val1 = denise_colors.acolors[pix1]; - gpix1 = get_genlock_transparency(pix1); + uae_u8 val1 = dpf_lookup[pix1]; + dpix_val1 = denise_colors.acolors[val1]; + gpix1 = get_genlock_transparency(dpf_lookup[pix1]); } last_bpl_pix = pix1; } shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; gpix0 = get_genlock_transparency(spix0); + dpix_val1 = dpix_val0; } } dtbuf[h][0] = dpix_val0; @@ -1759,10 +2569,7 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_ntsc_genlock(void) *gbuf++ = dtgbuf[h ^ lol][0]; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl4e(); - } - if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { - copybpl4o(); + copybpl4(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -1781,7 +2588,7 @@ static void lts_ecs_fm0_n1_p4_ihires_dlores_spr_ntsc_genlock(void) denise_cck++; } } -static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_ntsc_genlock(void) +static void lts_ecs_fm0_dpf1_p4_ihires_dlores_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1860,7 +2667,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_ntsc_genlock(void) *gbuf++ = dtgbuf[h ^ lol][0]; } if (bpldat_copy[0] && (denise_hcounter & 7) == bplcon1_shift[0]) { - copybpl4(); + copybpl4e(); + } + if (bpldat_copy[1] && (denise_hcounter & 7) == bplcon1_shift[1]) { + copybpl4o(); } sprites_hidden = sprites_hidden2; #ifdef DEBUGGER @@ -1879,7 +2689,7 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_ntsc_genlock(void) denise_cck++; } } -static void lts_ecs_fm0_dpf1_p4_ihires_dlores_spr_ntsc_genlock(void) +static void lts_ecs_fm0_dpf1_p4_ihires_dlores_spr_ntsc_filtered_genlock(void) { while (denise_cck < denise_total) { do_denise_cck(denise_linecnt, denise_startpos, denise_cck); @@ -1934,12 +2744,14 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dlores_spr_ntsc_genlock(void) shiftbpl4(); internal_pixel_cnt += 2; if (denise_pixtotal >= 0 && denise_pixtotal < denise_pixtotal_max) { + dpix_val0 = filter_pixel(dpix_val0, dpix_val1); if (sv0) { uae_u32 spix0 = denise_render_sprites2(pix0, sv0); if (spix0) { dpix_val0 = denise_colors.acolors[spix0]; gpix0 = get_genlock_transparency(spix0); + dpix_val1 = dpix_val0; } } dtbuf[h][0] = dpix_val0; @@ -1984,18 +2796,34 @@ static void lts_ecs_fm0_ehb0_p4_ihires_dlores_spr_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ihires_dlores_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ihires_dlores_spr_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ihires_dlores_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ihires_dlores_spr_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ihires_dlores_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ihires_dlores_spr_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ihires_dlores_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dhires_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -2080,6 +2908,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dhires_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dhires_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dhires_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -2167,6 +2999,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dhires_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dhires_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dhires_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -2252,6 +3088,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dhires_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dhires_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dhires_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -2340,6 +3180,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dhires_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dhires_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dhires_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -2429,6 +3273,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dhires_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dhires_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dhires_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -2521,6 +3369,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dhires_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dhires_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dhires_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -2605,6 +3457,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dhires_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dhires_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dhires_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -2692,6 +3548,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dhires_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dhires_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dhires_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -2794,6 +3654,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dhires_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dhires_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dhires_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -2899,6 +3763,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dhires_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dhires_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dhires_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -3002,6 +3870,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dhires_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dhires_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dhires_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -3108,6 +3980,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dhires_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dhires_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dhires_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -3215,6 +4091,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dhires_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dhires_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dhires_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -3325,6 +4205,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dhires_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dhires_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dhires_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -3427,6 +4311,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dhires_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dhires_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dhires_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -3532,6 +4420,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dhires_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dhires_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ihires_dhires_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -3625,6 +4517,10 @@ static void lts_ecs_fm0_n0_p4_ihires_dhires_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ihires_dhires_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ihires_dhires_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -3721,6 +4617,10 @@ static void lts_ecs_fm0_n1_p4_ihires_dhires_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ihires_dhires_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ihires_dhires_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -3816,6 +4716,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dhires_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ihires_dhires_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ihires_dhires_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -3914,22 +4818,42 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dhires_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ihires_dhires_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ihires_dhires_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ihires_dhires_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ihires_dhires_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ihires_dhires_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ihires_dhires_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ihires_dhires_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ihires_dhires_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ihires_dhires_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ihires_dhires_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -4049,6 +4973,10 @@ static void lts_ecs_fm0_n0_p4_ihires_dhires_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ihires_dhires_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ihires_dhires_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -4171,6 +5099,10 @@ static void lts_ecs_fm0_n1_p4_ihires_dhires_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ihires_dhires_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ihires_dhires_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -4292,6 +5224,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dhires_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ihires_dhires_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ihires_dhires_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -4416,22 +5352,42 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dhires_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ihires_dhires_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ihires_dhires_spr_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ihires_dhires_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ihires_dhires_spr_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ihires_dhires_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ihires_dhires_spr_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ihires_dhires_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ihires_dhires_spr_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ihires_dhires_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dshres_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -4552,6 +5508,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dshres_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dshres_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dshres_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -4675,6 +5635,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dshres_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dshres_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dshres_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -4796,6 +5760,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dshres_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dshres_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dshres_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -4920,6 +5888,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dshres_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dshres_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dshres_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -5045,6 +6017,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dshres_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dshres_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dshres_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -5173,6 +6149,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dshres_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dshres_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dshres_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -5293,6 +6273,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dshres_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dshres_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dshres_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -5416,6 +6400,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dshres_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dshres_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p6_ilores_dshres_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -5556,6 +6544,10 @@ static void lts_ecs_fm0_n0_p6_ilores_dshres_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p6_ilores_dshres_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p6_ilores_dshres_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -5699,6 +6691,10 @@ static void lts_ecs_fm0_n1_p6_ilores_dshres_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p6_ilores_dshres_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p6_ilores_dshres_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -5840,6 +6836,10 @@ static void lts_ecs_fm0_dpf0_p6_ilores_dshres_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p6_ilores_dshres_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p6_ilores_dshres_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -5984,6 +6984,10 @@ static void lts_ecs_fm0_dpf1_p6_ilores_dshres_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p6_ilores_dshres_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p6_ilores_dshres_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -6129,6 +7133,10 @@ static void lts_ecs_fm0_ehb0_p6_ilores_dshres_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb0_p6_ilores_dshres_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p6_ilores_dshres_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -6277,6 +7285,10 @@ static void lts_ecs_fm0_ehb1_p6_ilores_dshres_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ehb1_p6_ilores_dshres_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p6_ilores_dshres_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -6417,6 +7429,10 @@ static void lts_ecs_fm0_ham0_p6_ilores_dshres_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham0_p6_ilores_dshres_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p6_ilores_dshres_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -6560,6 +7576,10 @@ static void lts_ecs_fm0_ham1_p6_ilores_dshres_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_ham1_p6_ilores_dshres_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ihires_dshres_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -6689,6 +7709,10 @@ static void lts_ecs_fm0_n0_p4_ihires_dshres_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ihires_dshres_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ihires_dshres_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -6821,6 +7845,10 @@ static void lts_ecs_fm0_n1_p4_ihires_dshres_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ihires_dshres_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ihires_dshres_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -6952,6 +7980,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dshres_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ihires_dshres_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ihires_dshres_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -7086,22 +8118,42 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dshres_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ihires_dshres_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ihires_dshres_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ihires_dshres_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ihires_dshres_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ihires_dshres_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ihires_dshres_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ihires_dshres_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ihires_dshres_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ihires_dshres_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n0_p4_ihires_dshres_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -7275,6 +8327,10 @@ static void lts_ecs_fm0_n0_p4_ihires_dshres_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n0_p4_ihires_dshres_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_n1_p4_ihires_dshres_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -7451,6 +8507,10 @@ static void lts_ecs_fm0_n1_p4_ihires_dshres_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_n1_p4_ihires_dshres_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf0_p4_ihires_dshres_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -7626,6 +8686,10 @@ static void lts_ecs_fm0_dpf0_p4_ihires_dshres_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf0_p4_ihires_dshres_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_dpf1_p4_ihires_dshres_spr_ntsc_genlock(void) { while (denise_cck < denise_total) { @@ -7804,22 +8868,42 @@ static void lts_ecs_fm0_dpf1_p4_ihires_dshres_spr_ntsc_genlock(void) denise_cck++; } } +static void lts_ecs_fm0_dpf1_p4_ihires_dshres_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb0_p4_ihires_dshres_spr_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb0_p4_ihires_dshres_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ehb1_p4_ihires_dshres_spr_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ehb1_p4_ihires_dshres_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham0_p4_ihires_dshres_spr_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham0_p4_ihires_dshres_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static void lts_ecs_fm0_ham1_p4_ihires_dshres_spr_ntsc_genlock(void) { lts_null(); } +static void lts_ecs_fm0_ham1_p4_ihires_dshres_spr_ntsc_filtered_genlock(void) +{ + lts_null(); +} static LINETOSRC_FUNC linetoscr_ecs_ntsc_genlock_funcs[] = { lts_ecs_fm0_n0_p6_ilores_dlores_ntsc_genlock, lts_ecs_fm0_n1_p6_ilores_dlores_ntsc_genlock, @@ -7919,3 +9003,102 @@ static LINETOSRC_FUNC linetoscr_ecs_ntsc_genlock_funcs[] = { lts_ecs_fm0_ham1_p4_ihires_dshres_spr_ntsc_genlock, NULL }; +static LINETOSRC_FUNC linetoscr_ecs_ntsc_genlock_funcs_filtered[] = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + lts_ecs_fm0_n0_p4_ihires_dlores_ntsc_filtered_genlock, + lts_ecs_fm0_n1_p4_ihires_dlores_ntsc_filtered_genlock, + lts_ecs_fm0_dpf0_p4_ihires_dlores_ntsc_filtered_genlock, + lts_ecs_fm0_dpf1_p4_ihires_dlores_ntsc_filtered_genlock, + lts_ecs_fm0_ehb0_p4_ihires_dlores_ntsc_filtered_genlock, + lts_ecs_fm0_ehb1_p4_ihires_dlores_ntsc_filtered_genlock, + lts_ecs_fm0_ham0_p4_ihires_dlores_ntsc_filtered_genlock, + lts_ecs_fm0_ham1_p4_ihires_dlores_ntsc_filtered_genlock, + lts_ecs_fm0_n0_p4_ihires_dlores_spr_ntsc_filtered_genlock, + lts_ecs_fm0_n1_p4_ihires_dlores_spr_ntsc_filtered_genlock, + lts_ecs_fm0_dpf0_p4_ihires_dlores_spr_ntsc_filtered_genlock, + lts_ecs_fm0_dpf1_p4_ihires_dlores_spr_ntsc_filtered_genlock, + lts_ecs_fm0_ehb0_p4_ihires_dlores_spr_ntsc_filtered_genlock, + lts_ecs_fm0_ehb1_p4_ihires_dlores_spr_ntsc_filtered_genlock, + lts_ecs_fm0_ham0_p4_ihires_dlores_spr_ntsc_filtered_genlock, + lts_ecs_fm0_ham1_p4_ihires_dlores_spr_ntsc_filtered_genlock, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +}; -- 2.47.3