Many have trouble getting VESA 2.0 modes for their old DOS games, even with UNIVESA, an old utility that provided VESA modes for old graphics cards that had no
VESA 2.0 or 3.0 support. UNIVESA will not work on modern machines. This utility is quite old, and has no support for modern GPUs. UNIVESA was created to provide
VESA BIOS calls for old cards that did not have complete VESA 2.0 or 3.0 support. Modern cards (like the GeFroce 4 MX440)
do have VESA 3.0 support built-in, so you do not need a utility like Univesa, but you will not have these VESA modes under Windows 2000/XP due to lack of support from VGA.SYS and the NTVDM in general.
Why can't you play games using some VESA modes under Windows 2000/XP? The answer to this question has to be split in two: how to set your card to the desired video mode and how to access video memory.
First of all, to set your card into the correct VESA mode you need access to the I/O ports used by the card, and access to these ports is controlled by the NTVDM and VGA.SYS, the standard full-screen VGA driver from Windows. From several discussions in this forum we have learned that vga.sys restricts access to some I/O ports based on card model. Most ATI cards and nVidia GeForce 2 and 3 cards have no problem with this, but GeForce 4 MX cards are in trouble because vga.sys won't let the BIOS write to the correct I/O ports needed to switch modes. There are a couple of alternatives to fix this: there's a patch for vga.sys that "unblocks" access to some I/O ports used by Geforce 4 cards in this thread and there is the new SolVBE driver written by Sol_HSA.
The second part of the problem involves access to the video memory. Some VESA modes require linear access to the card memory, but the DPMI services provided by
the NTVDM do not allow this and there is no other way to have direct access to physical memory regions inside the VDM, so you are limited to banked modes. Eventually
you need to force a game to detected only banked modes, so you need
NOLFB to "hide" linear modes from the list of modes returned by BIOS calls issued by the game. SolVBE also does this trick, showing only banked modes.
Finally, please keep in mind that this is a tough subject and results may vary.
You can help keep The Sierra Help Pages alive by helping to defray some of the costs of hosting this site. If it has been of help to you, please consider contributing to help keep it online.Thank you.
© 2006 to present The Sierra Help Pages. All rights reserved. All Sierra games, artwork and music © Sierra.