VESA Support & XP
Compiled from threads from VOGONS
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.
Setting VESA mode
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.
Accessing Video Memory
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.
Regards,
MajorGrubert
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. |
|