From 245ad1cd4234bffa8c0d21e301972bf812f50a64 Mon Sep 17 00:00:00 2001 From: SarahW Date: Sun, 11 Feb 2018 15:37:25 +0000 Subject: [PATCH] Fix TGUI9440 cursor in interlaced modes. --- src/vid_tgui9440.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/vid_tgui9440.c b/src/vid_tgui9440.c index f2b2134..cdc6ef6 100644 --- a/src/vid_tgui9440.c +++ b/src/vid_tgui9440.c @@ -642,6 +642,9 @@ void tgui_hwcursor_draw(svga_t *svga, int displine) int xx; int offset = svga->hwcursor_latch.x - svga->hwcursor_latch.xoff; + if (svga->interlace && svga->hwcursor_oddeven) + svga->hwcursor_latch.addr += 8; + dat[0] = (svga->vram[svga->hwcursor_latch.addr] << 24) | (svga->vram[svga->hwcursor_latch.addr + 1] << 16) | (svga->vram[svga->hwcursor_latch.addr + 2] << 8) | svga->vram[svga->hwcursor_latch.addr + 3]; dat[1] = (svga->vram[svga->hwcursor_latch.addr + 4] << 24) | (svga->vram[svga->hwcursor_latch.addr + 5] << 16) | (svga->vram[svga->hwcursor_latch.addr + 6] << 8) | svga->vram[svga->hwcursor_latch.addr + 7]; for (xx = 0; xx < 32; xx++) @@ -660,6 +663,9 @@ void tgui_hwcursor_draw(svga_t *svga, int displine) dat[1] <<= 1; } svga->hwcursor_latch.addr += 8; + + if (svga->interlace && !svga->hwcursor_oddeven) + svga->hwcursor_latch.addr += 8; } uint8_t tgui_pci_read(int func, int addr, void *p)