Commit 9da8ba18e60273b9925991712883e54c16d4b626

Authored by bellard
1 parent 76bc6838

mode X double scan fix (malc)


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@364 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 4 additions and 2 deletions
hw/vga.c
@@ -1124,7 +1124,10 @@ static void vga_draw_graphic(VGAState *s, int full_update) @@ -1124,7 +1124,10 @@ static void vga_draw_graphic(VGAState *s, int full_update)
1124 disp_width = width; 1124 disp_width = width;
1125 1125
1126 shift_control = (s->gr[0x05] >> 5) & 3; 1126 shift_control = (s->gr[0x05] >> 5) & 3;
1127 - double_scan = (s->cr[0x09] & 0x80); 1127 + if (shift_control > 1)
  1128 + double_scan = ((s->cr[0x09] & 0x1f) != 0);
  1129 + else
  1130 + double_scan = (s->cr[0x09] & 0x80);
1128 if (shift_control != s->shift_control || 1131 if (shift_control != s->shift_control ||
1129 double_scan != s->double_scan) { 1132 double_scan != s->double_scan) {
1130 full_update = 1; 1133 full_update = 1;
@@ -1151,7 +1154,6 @@ static void vga_draw_graphic(VGAState *s, int full_update) @@ -1151,7 +1154,6 @@ static void vga_draw_graphic(VGAState *s, int full_update)
1151 } else { 1154 } else {
1152 full_update |= update_palette256(s); 1155 full_update |= update_palette256(s);
1153 v = VGA_DRAW_LINE8D2; 1156 v = VGA_DRAW_LINE8D2;
1154 - double_scan = 1; /* XXX: explain me why it is always activated */  
1155 } 1157 }
1156 vga_draw_line = vga_draw_line_table[v * 4 + get_depth_index(s->ds->depth)]; 1158 vga_draw_line = vga_draw_line_table[v * 4 + get_depth_index(s->ds->depth)];
1157 1159