From 2efda3598b1521c5899f0a20d0b94fd97b2b4c6e Mon Sep 17 00:00:00 2001 From: SarahW Date: Fri, 2 Oct 2020 17:21:41 +0100 Subject: [PATCH] Trident TVGA8900D appears to implement port 0x3db as an alternative clock select. Fixes pixel clocks & refresh rates on this card. --- src/vid_tvga.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/vid_tvga.c b/src/vid_tvga.c index d9213ea..59e11e3 100644 --- a/src/vid_tvga.c +++ b/src/vid_tvga.c @@ -161,6 +161,16 @@ void tvga_out(uint16_t addr, uint8_t val, void *p) tvga_recalcbanking(tvga); } return; + case 0x3DB: + if (tvga->id == TVGA_8900D) + { + /*3db appears to be a 4 bit clock select register on 8900D*/ + svga->miscout = (svga->miscout & ~0x0c) | ((val & 3) << 2); + tvga->newctrl2 = (tvga->newctrl2 & ~0x01) | ((val & 4) >> 2); + tvga->oldctrl1 = (tvga->oldctrl1 & ~0x10) | ((val & 8) << 1); + svga_recalctimings(svga); + } + break; } svga_out(addr, val, svga); }