summaryrefslogtreecommitdiff
path: root/src/i_video.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/i_video.c')
-rw-r--r--src/i_video.c11
1 files changed, 7 insertions, 4 deletions
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;