I’d like to run Windows 3.11 on a relatively modern laptop. One problem I have is that the only display driver that works with my hardware is the basic VGA driver, which only supports the rather unimpressive resolution of 640×480×4bpp, whereas my screen is able handle 32-bpp graphics nearly five times the pixel count.

I have no expectations that a native driver would be available for my video hardware; however, I know that my video BIOS supports VESA BIOS Extensions version 3.0, which (after patching) allows my boot manager to switch to the native screen resolution.

Perhaps if I had a VBE video driver for Windows, I would be able to use the same resolution (or at least one higher than 640×480) in Windows as well. Is there such a driver available?

  • Looks like there was one; please take a look at the "VESA" section here: ftp.sleepgate.ru/drivers/video/ancient/Diamond/html/driver/… SDD53A.EXE is might be exactly what you are looking for. – DmytroL Sep 3 at 8:28
  • Last I checked, SciTech Display Doctor was a driver for a number for specific video cards that provided a VBE interface, not used it. Just because some call it a VBE driver doesn’t mean it is what I am looking for. – user3840170 Sep 3 at 10:24
  • Apologies! I falsely assumed that the stock Windows 3.1 SVGA driver could use the VBE interface but apparently it talked directly to the video chip hardware (hence the need for Japheth's SVGAPatch) – DmytroL Sep 7 at 10:49

It seems unlikely that a fully-functional VBE driver for Windows 3.x exists. Microsoft started bundling a VBE driver with the operating system only as late as with Windows XP, by which time the Windows 3.x (and 9x) driver architecture was long obsolete. According to a post on OS/2 Museum, the display driver architecture of Windows 3.x was pretty baroque: the drivers were required to not only to implement mode switching and transferring pixel buffers to the screen but also many drawing operations as well. This in turn means that one should not expect it to be easy to create such a driver from scratch; it certainly wouldn’t be a weekend project.

In Windows 95, the driver architecture was simplified: drivers could re-use generic drawing routines from the DIB engine, which is (presumably) what enabled the development of a VBE driver for Windows 9x from the VBEMP project. The same project also developed a VBE driver for earlier versions of Windows NT.

The above notwithstanding, there is a hacky partial solution: Japheth’s SVGAPatch. In order to use it, follow these steps:

  1. Download the archive and extract SVGAPTCH.EXE into some known location.
  2. Open Windows Setup and change the display driver to 256-colour SuperVGA with your chosen resolution. Point the installer to installation archives/floppies as necessary.
  3. Exit Windows without restarting.
  4. Enter the SYSTEM directory and run svgaptch -p.
  5. Restart Windows.

The patched driver doesn’t expose the full VBE capabilities; it can only switch to one of three hardcoded modes supported by the original driver (640×480, 800×600 and 1024×768). The patch accomplishes its task by replacing the hardware-specific mode-switching routines (and some data structures) in svga256.drv with routines using VBE calls. (If you feel adventurous, you may even try further patching the driver to enable other resolutions.) For basic usage the patched driver seems sufficient, but I noticed that starting a DOS box, switching between full-screen and windowed modes thereof or even triggering a blue screen usually causes visual glitches (which may require Windows to be restarted) or outright crashes Windows immediately. User beware.

| improve this answer | |
  • 1
    On Windows 9x, SciTech Display Doctor 7 was also available in beta; I think it’s a fairly generic VBE driver (more so than version 6). – Stephen Kitt Aug 27 at 21:38
  • Yah, Windows 3.x video drivers had to essentially implement entire GDI interface themselves. This was normally done by starting with Microsoft's reference driver that implemented all the functionality, but this isn't an option for anyone writing a driver today. – Ross Ridge Aug 27 at 21:41
  • 1
    The same is also true of Windows 2.x and 1.x drivers, with even less in the way of reference code and documentation. – john_e Aug 28 at 10:36
  • Still, some sites list SciTech's Display Doctor 5.3 for Windows 3.1/95/NT as a download, and SciTech Display Doctor is a generic VBE driver formely known as UniVBE. I vaguely recall installing this software back in mid-nineties and it did "just what the doctor ordered" – DmytroL Sep 3 at 8:33
  • 1
    @DmytroL unfortunately I doubt it will include support for the graphics chipset used in the OP’s “relatively modern laptop” :-(. – Stephen Kitt Sep 8 at 15:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.