Summary | Many NT users complain that NTVDM doesn't "support" VESA. Actually, VESA "support" is not NT's business. The video adapter's ROM BIOS is used in fullscreen mode. Many adapters support VESA in BIOS.
But there is another problem with NT: The video driver must inform NT which ports DOS needs. Most, if not all, drivers are marked as not "VGA compatible", so vendors can save coding time by not supporting fullscreen DOS. In this case, the "VGA Safe" driver is used instead of the hardware-specific driver, and this universal driver doesn't know all the adapter's ports.
Here is the solution: Replace the port driver with a "proxy" dll and hook calls to the VideoPortSetTrappedEmulatorPorts function. Usually VGASafe miniport calls this function with subset of standard VGA ports. The proxy dll will call the real function with the modified set of ports, which it obtains from registry. |