From 52fd357f3d42b86e753af1b17e6507482d6c1121 Mon Sep 17 00:00:00 2001 From: SarahW Date: Sat, 22 Oct 2016 16:13:42 +0100 Subject: [PATCH] Voodoo CLUT data can be written via CMDFIFO. --- src/vid_voodoo.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/vid_voodoo.c b/src/vid_voodoo.c index be6e928..64c5910 100644 --- a/src/vid_voodoo.c +++ b/src/vid_voodoo.c @@ -4430,6 +4430,19 @@ static void voodoo_reg_writel(uint32_t addr, uint32_t val, void *p) voodoo->params.fogTable[addr+1].fog = (val >> 24) & 0xff; break; + case SST_clutData: + voodoo->clutData[(val >> 24) & 0x3f].b = val & 0xff; + voodoo->clutData[(val >> 24) & 0x3f].g = (val >> 8) & 0xff; + voodoo->clutData[(val >> 24) & 0x3f].r = (val >> 16) & 0xff; + if (val & 0x20000000) + { + voodoo->clutData[(val >> 24) & 0x3f].b = 255; + voodoo->clutData[(val >> 24) & 0x3f].g = 255; + voodoo->clutData[(val >> 24) & 0x3f].r = 255; + } + voodoo->clutData_dirty = 1; + break; + case SST_sSetupMode: voodoo->sSetupMode = val; break;