From d9a571c179611178dc5d2ed6142ad8f3b39a7a04 Mon Sep 17 00:00:00 2001 From: OBattler Date: Wed, 27 Dec 2023 15:37:37 +0100 Subject: [PATCH] A small preparation in vid_svga. --- src/include/86box/vid_svga.h | 1 + src/video/vid_svga.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/include/86box/vid_svga.h b/src/include/86box/vid_svga.h index fc6c02c20..f55ec930c 100644 --- a/src/include/86box/vid_svga.h +++ b/src/include/86box/vid_svga.h @@ -231,6 +231,7 @@ typedef struct svga_t { uint8_t dac_status; uint8_t dpms; uint8_t dpms_ui; + uint8_t color_4bpp; uint8_t ksc5601_sbyte_mask; uint8_t ksc5601_udc_area_msb[2]; diff --git a/src/video/vid_svga.c b/src/video/vid_svga.c index be53a0170..ed93a6f3d 100644 --- a/src/video/vid_svga.c +++ b/src/video/vid_svga.c @@ -174,8 +174,10 @@ svga_out(uint16_t addr, uint8_t val, void *priv) svga->fullchange = svga->monitor->mon_changeframecount; o = svga->attrregs[svga->attraddr & 31]; svga->attrregs[svga->attraddr & 31] = val; - if (svga->attraddr < 16) + if (svga->attraddr < 16) { + svga->color_4bpp = (val >> 4) & 0x03; svga->fullchange = svga->monitor->mon_changeframecount; + } if (svga->attraddr == 0x10 || svga->attraddr == 0x14 || svga->attraddr < 0x10) { for (int c = 0; c < 16; c++) { if (svga->attrregs[0x10] & 0x80) {