From 45fd2946d98def85a4e471b7327a7dfa73e5e5fd Mon Sep 17 00:00:00 2001 From: Waccoon <105848526+Waccoon@users.noreply.github.com> Date: Tue, 24 May 2022 03:55:02 -0400 Subject: [PATCH] Update drawing.cpp Update EHB logic so palette mirroring will be correct with A1000 early Denise chip. With AGA chipset, bplehb may be zero (uses color registers 32-63), but for OCS/ECS it must be -1 (mirrors color registers 0-31). Logic assumes that OCS Denise with EHB support cannot disable its EHB colors. --- drawing.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drawing.cpp b/drawing.cpp index 12d492b7..748cdd4f 100644 --- a/drawing.cpp +++ b/drawing.cpp @@ -3112,10 +3112,15 @@ static void pfield_expand_dp_bplcon(void) bplplanecnt = dp_for_drawing->nr_planes; bplham = dp_for_drawing->ham_seen; bplehb = dp_for_drawing->ehb_seen; - if (ecs_denise && (dp_for_drawing->bplcon2 & 0x0200)) { - bplehb = 0; - if (!aga_mode) - bplehb = -1; + if (ecs_denise) { + // Check for KillEHB bit in ECS/AGA + if (dp_for_drawing->bplcon2 & 0x0200) { + bplehb = 0; + if (!aga_mode) + bplehb = -1; + } + } else if ((currprefs.cs_denisenoehb)) { + bplehb = -1; } bplcolorburst = (dp_for_drawing->bplcon0 & 0x200) != 0; if (!bplcolorburst) -- 2.47.3