From 63186246611ecdc3457e4eac186cf15a9edce654 Mon Sep 17 00:00:00 2001 From: SarahW Date: Fri, 14 Aug 2020 20:34:23 +0100 Subject: [PATCH] Banshee fog table seems to be inverted compared to other Voodoo cards (hardware bug?). Re-enabled fog. --- src/vid_voodoo_reg.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/vid_voodoo_reg.c b/src/vid_voodoo_reg.c index 97b1c2e..df48abe 100644 --- a/src/vid_voodoo_reg.c +++ b/src/vid_voodoo_reg.c @@ -530,6 +530,9 @@ void voodoo_reg_writel(uint32_t addr, uint32_t val, void *p) case SST_fogTable18: case SST_fogTable19: case SST_fogTable1a: case SST_fogTable1b: case SST_fogTable1c: case SST_fogTable1d: case SST_fogTable1e: case SST_fogTable1f: addr = (addr - SST_fogTable00) >> 1; + if (voodoo->type == VOODOO_BANSHEE) + val = ~val; /*Banshee fog table seems to be inverted. There's a reference + in the glide2x source to a "banshee (rev<3) fogTable hack"*/ voodoo->params.fogTable[addr].dfog = val & 0xff; voodoo->params.fogTable[addr].fog = (val >> 8) & 0xff; voodoo->params.fogTable[addr+1].dfog = (val >> 16) & 0xff;