From 8f980fe24cb3144bf7bcb6dbcb4f29ef554fbaa3 Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Sun, 16 Oct 2011 16:59:19 +0000 Subject: Zero out bottom two bits of palette data, to more accurately emulate the PC hardware that only supports 6 bits per channel (thanks GhostlyDeath). Subversion-branch: /trunk/chocolate-doom Subversion-revision: 2433 --- src/i_video.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/i_video.c b/src/i_video.c index 15e4a6b7..d671a228 100644 --- a/src/i_video.c +++ b/src/i_video.c @@ -956,11 +956,14 @@ void I_SetPalette (byte *doompalette) { int i; - for (i=0; i<256; ++i) + for (i=0; i<256; ++i) { - palette[i].r = gammatable[usegamma][*doompalette++]; - palette[i].g = gammatable[usegamma][*doompalette++]; - palette[i].b = gammatable[usegamma][*doompalette++]; + // Zero out the bottom two bits of each channel - the PC VGA + // controller only supports 6 bits of accuracy. + + palette[i].r = gammatable[usegamma][*doompalette++] & ~3; + palette[i].g = gammatable[usegamma][*doompalette++] & ~3; + palette[i].b = gammatable[usegamma][*doompalette++] & ~3; } palette_to_set = true; -- cgit v1.2.3