]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Better OCS/ECS blacker than black fix
authorToni Wilen <twilen@winuae.net>
Sat, 20 Feb 2021 16:20:29 +0000 (18:20 +0200)
committerToni Wilen <twilen@winuae.net>
Sat, 20 Feb 2021 16:20:29 +0000 (18:20 +0200)
gfxutil.cpp

index 650792fcddd7865bb55b1ac5899c9c66dd67fe88..1161c5d28e08e9e22ecd3f220a3356813cf71e53 100644 (file)
@@ -381,15 +381,9 @@ void alloc_colors64k(int monid, int rw, int gw, int bw, int rs, int gs, int bs,
                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 = (r * (255 - 8) / 255) + 8;
+                       g = (g * (255 - 8) / 255) + 8;
+                       b = (b * (255 - 8) / 255) + 8;
                }
 
                r = gamma[r + j][0];
@@ -448,15 +442,9 @@ void alloc_colors64k(int monid, int rw, int gw, int bw, int rs, int gs, int bs,
                        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;
+                               r = (r * (255 - 8) / 255) + 8;
+                               g = (g * (255 - 8) / 255) + 8;
+                               b = (b * (255 - 8) / 255) + 8;
                        }
 
                        xcolors[i] = doMask(r, 5, 11) | doMask(g, 6, 5) | doMask(b, 5, 0);