A modern rewrite of Windows 3.1's SVGA driver enables support for modern graphics hardware, allowing the classic OS to run in resolutions up to 1920x1080 with 24-bit colour
A developer has created a modern rewrite of Windows 3.1's SVGA driver that enables the classic operating system to run on contemporary hardware with support for true-colour displays up to Full HD resolution.
The VBESVGA.DRV project, hosted on GitHub, represents a significant technical achievement in retro computing. The driver supports all available 8-bit, 16-bit, 24-bit, or 32-bit graphic modes on any system providing VESA BIOS Extensions (VBE), effectively breathing new life into Microsoft's 30-year-old operating system.
Why Modernize Windows 3.1?
The motivation behind this project stems from practical limitations faced by enthusiasts running legacy software on modern hardware. The developer's AMD Radeon RX 5500 XT graphics card, for instance, doesn't support 256-colour modes, rendering traditional VESA patches useless for contemporary systems.
"To demonstrate that it's possible to run Windows 3.1 in True-Colour Full HD" serves as the primary driver behind this ambitious undertaking. The project also aims to help fellow enthusiasts who enjoy running old software on new hardware, creating a bridge between computing eras.
Technical Implementation
The driver is based on the Video 7 SVGA driver from the Win16 Driver Development Kit, with most hardware-specific code removed and support added for multi-byte pixels. This approach allows the driver to work with virtually any graphics card that properly supports VESA BIOS Extensions.
Key technical features include:
- Automatic detection of monitor's preferred resolution via EDID
- Support for three font sizes: tiny (48 dpi), small (96 dpi), and large (120 dpi)
- Double buffering for improved performance on modern systems
- Linear framebuffer support for better compatibility with 386 Enhanced Mode
- Windowed DOS session support for 256-colour VGA mode 13h
Hardware Compatibility
While theoretically supporting any graphics card from the last thirty years, real-world compatibility varies. The NVIDIA GeForce 1050 GTX exhibits issues with windowed DOS prompts, including potential freezes and font corruption. AMD Radeon RX 5000 series cards work perfectly, though there's been one report of a 386 Enhanced Mode boot failure with an RX 7000 series card.
Interestingly, Intel 810 chipset integrated graphics crashes during boot, but an official driver exists for this hardware: https://archive.org/details/w-810-r-209
Installation and Configuration
The driver offers multiple installation methods to suit different user preferences:
Generic OEMSETUP.INF: Provides profiles typical of early SVGA hardware, allowing selection of various resolutions and colour depths
Interactive SETUP.EXE: An interactive DOS program that presents a configuration interface and copies required files to the Windows folder
Custom OEMSETUP.INF generation: Users can generate bespoke setup files tailored to their specific hardware
Configuration options are extensive, including parameters for width, height, colour depth, font size, double buffering intervals, and various debugging options.
Performance and Limitations
Despite its capabilities, the driver has some limitations inherent to Windows 3.1 itself:
- Program Manager icon memory limitations in high-colour modes
- Potential system crashes when restarting Windows without rebooting
- Paintbrush zoom mode breaking in high-colour modes wider than 800 pixels
- Bitmap size limitations affecting large photograph viewing
DOS Windowed Mode Support
One of the most impressive features is support for running DOS programs in windowed mode. While text-mode sessions work flawlessly, graphical mode support is more limited. The driver successfully supports:
- CGA graphical modes (320×200, 4-colour, and 640×200, 2-colour)
- 256-colour VGA mode 13h (320×200)
- Windowed DOS sessions with frame-rate regulation
However, planar EGA/VGA modes cannot be windowed due to hardware virtualization limitations.
Build Process
The driver can be built using the Win16 DDK and Visual C++, with the process being purely DOS-based after initial setup. The project includes comprehensive documentation for building both the display driver and associated components.
Windows 9x Support
Interestingly, VBESVGA.DRV and VDDVBE.386 can be used together on Windows 9x, even supporting colour and animated cursors. However, limitations exist due to lack of registry integration and Plug-and-Play system support.
Community Impact
Since its release, the project has garnered significant attention from the retro computing community. The driver has enabled enthusiasts to experience Windows 3.1 with modern display capabilities, running classic applications and games in resolutions and colour depths previously impossible on the platform.
Screenshots demonstrate the driver's capabilities, showing Windows 3.1 running in true-colour Full HD with modern applications like Internet Explorer 4.0 and classic games like Minesweeper and Solitaire, all rendered in crisp high resolution.
The VBESVGA.DRV project represents a remarkable achievement in preserving and enhancing computing history, proving that even three-decade-old operating systems can find new life on modern hardware with the right technical expertise and dedication.

Comments
Please log in or register to join the discussion