From a012b0c71d29513d978fadd92a5e4e4a37f6d0e9 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sat, 16 Jan 2021 18:46:47 +0200 Subject: [PATCH] Blacker than black OCS/ECS fix. --- gfxutil.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gfxutil.cpp b/gfxutil.cpp index ab204134..650792fc 100644 --- a/gfxutil.cpp +++ b/gfxutil.cpp @@ -379,6 +379,19 @@ void alloc_colors64k(int monid, int rw, int gw, int bw, int rs, int gs, int bs, int r = ((i >> 8) << 4) | (i >> 8); int g = (((i >> 4) & 0xf) << 4) | ((i >> 4) & 0x0f); int b = ((i & 0xf) << 4) | (i & 0x0f); + + if (currprefs.gfx_blackerthanblack) { + r += 10; + g += 10; + b += 10; + if (r > 255) + r = 255; + if (g > 255) + g = 255; + if (b > 255) + b = 255; + } + r = gamma[r + j][0]; g = gamma[g + j][1]; b = gamma[b + j][2]; @@ -433,6 +446,19 @@ void alloc_colors64k(int monid, int rw, int gw, int bw, int rs, int gs, int bs, r = gamma[r + 256][0]; g = gamma[g + 256][1]; b = gamma[b + 256][2]; + + if (currprefs.gfx_blackerthanblack) { + r += 10; + g += 10; + b += 10; + if (r > 255) + r = 255; + if (g > 255) + g = 255; + if (b > 255) + b = 255; + } + xcolors[i] = doMask(r, 5, 11) | doMask(g, 6, 5) | doMask(b, 5, 0); if (byte_swap) { if (bpp <= 16) -- 2.47.3