diff --git a/src/hardware/vga_draw.cpp b/src/hardware/vga_draw.cpp index c78c0625..07106670 100644 --- a/src/hardware/vga_draw.cpp +++ b/src/hardware/vga_draw.cpp @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: vga_draw.cpp,v 1.89 2007-12-10 22:11:13 c2woody Exp $ */ +/* $Id: vga_draw.cpp,v 1.90 2007-12-19 21:12:22 c2woody Exp $ */ #include #include @@ -1156,14 +1156,18 @@ void VGA_SetupDrawing(Bitu val) { } // fall-through case M_LIN32: - width<<=1; - // fall-through - case M_LIN15: + width<<=3; + if (vga.crtc.mode_control & 0x8) + doublewidth = true; + /* Use HW mouse cursor drawer if enabled */ + VGA_ActivateHardwareCursor(); + break; + case M_LIN15: case M_LIN16: // 15/16 bpp modes double the horizontal values width<<=2; - if (vga.crtc.mode_control & 0x8) - doublewidth = true; + if ((vga.crtc.mode_control & 0x8) || (vga.s3.pll.cmd & 0x10)) + doublewidth = true; /* Use HW mouse cursor drawer if enabled */ VGA_ActivateHardwareCursor(); break; diff --git a/src/ints/int10_modes.cpp b/src/ints/int10_modes.cpp index f008954b..09649a7d 100644 --- a/src/ints/int10_modes.cpp +++ b/src/ints/int10_modes.cpp @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: int10_modes.cpp,v 1.71 2007-12-10 22:11:13 c2woody Exp $ */ +/* $Id: int10_modes.cpp,v 1.72 2007-12-19 21:12:22 c2woody Exp $ */ #include @@ -1088,6 +1088,9 @@ dac_text16: IO_Write(crtc_base,0x52); // extended BIOS scratchpad IO_Write(crtc_base+1,0x80); + IO_Write(0x3c4,0x15); + IO_Write(0x3c5,0x03); + // Accellerator setup Bitu reg_50=0; switch (CurMode->type) { @@ -1131,7 +1134,7 @@ dac_text16: reg_31 = 9; break; default: - reg_31 = 0; + reg_31 = 5; break; } IO_Write(crtc_base,0x3a);IO_Write(crtc_base+1,reg_3a);