Commit 9da8ba18e60273b9925991712883e54c16d4b626
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 |