From 9da8ba18e60273b9925991712883e54c16d4b626 Mon Sep 17 00:00:00 2001 From: bellard Date: Mon, 11 Aug 2003 20:33:04 +0000 Subject: mode X double scan fix (malc) git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@364 c046a42c-6fe2-441c-8c8c-71466251a162 --- hw/vga.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/vga.c b/hw/vga.c index 0ed8abf24c..9ab9a163cf 100644 --- a/hw/vga.c +++ b/hw/vga.c @@ -1124,7 +1124,10 @@ static void vga_draw_graphic(VGAState *s, int full_update) disp_width = width; shift_control = (s->gr[0x05] >> 5) & 3; - double_scan = (s->cr[0x09] & 0x80); + if (shift_control > 1) + double_scan = ((s->cr[0x09] & 0x1f) != 0); + else + double_scan = (s->cr[0x09] & 0x80); if (shift_control != s->shift_control || double_scan != s->double_scan) { full_update = 1; @@ -1151,7 +1154,6 @@ static void vga_draw_graphic(VGAState *s, int full_update) } else { full_update |= update_palette256(s); v = VGA_DRAW_LINE8D2; - double_scan = 1; /* XXX: explain me why it is always activated */ } vga_draw_line = vga_draw_line_table[v * 4 + get_depth_index(s->ds->depth)]; -- cgit v1.2.1