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 implement not only 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:
- Download the archive and extract
SVGAPTCH.EXE
into some known location.
- 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.
- Exit Windows without restarting.
- Enter the
SYSTEM
directory and run svgaptch -p
.
- 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. For that functionality to work correctly, the VDDSVGA.386
virtual device driver would probably need be patched as well (and maybe the ‘386 grabber’ driver too). User beware.