VOGONS


NVIDIA Kepler/Maxwell/Pascal VESA Bios Bug (workaround found)

Topic actions

Reply 80 of 98, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
RayeR wrote on 2023-12-11, 06:00:
BEEN_Nath_58 wrote on 2023-12-11, 02:00:

I recall there was a notice for removal of VBE from AMD cards, here's a third party link:

https://www.scribd.com/document/578511765/Rem … -8-bbb-graphics

This is near 10 year old, what's the current status on AMD cards? Nvidia even broke VGA compatability at IO regs level on RTX, does at least VGA modes still works on current AMD cards? And VBE?

Can't say. On my monitor with a WX5100 (Polaris) most of the games still work fine, though not as good as it would on a period-correct environment. Things indeed get worse with W6400 (Navi 24) -- Some games such as Titus the Fox exhibit flickering, especially during intro fade in/out, which was not observed on WX5100.

On the other hand (off-topic), it seems AMD handles VGA/VESA output timings a bit differently from nVidia, that I cannot force an arbitrary VGA/VESA resolution/refresh rate with a modded EDID dongle like I could with a nVidia card. With an ATI/AMD card, forced timings are only honored in an OS with actual drivers (Linux/Windows), while with a nVidia card, forced timings work virtually everywhere, including BIOS, DOS, as well as other OSes using generic VESA driver. In regards to forced refresh rates, it's very easy to check whether it works, as text mode cursors would blink significantly faster when the card outputs at a high refresh rate like 120/144Hz.

Still, on my monitor, with an ATI/AMD card, the video output feels sharp in general, whereas with nVidia everything looks a bit blurry as if "Bilinear" is turned on.

Reply 81 of 98, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
RayeR wrote on 2023-12-11, 06:00:
BEEN_Nath_58 wrote on 2023-12-11, 02:00:

I recall there was a notice for removal of VBE from AMD cards, here's a third party link:

https://www.scribd.com/document/578511765/Rem … -8-bbb-graphics

This is near 10 year old, what's the current status on AMD cards? Nvidia even broke VGA compatability at IO regs level on RTX, does at least VGA modes still works on current AMD cards? And VBE?

I could try on my GTX 1050Ti but I don't recall seeing a BIOS/CSM mode on the motherboard 😀

Also I don't think UEFI and BIOS have something inclusive to them that it will work

Edit: Idk I booted with the BIOS entry inside the Boot menu and the bootloader loaded, but with an error that has relevance as old as 2007. Gotta wait af ew weeks to fix that now 🤣

previously known as Discrete_BOB_058

Reply 82 of 98, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t

The VBEVSTST program from Falcom reports the following on a 1050Ti:

GetStart is supported
GetStart call failed
GetStart is Supported <00h>
GetStart call failed <00h>

previously known as Discrete_BOB_058

Reply 83 of 98, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

GTX 1xxx should be ok but since RTX 2xxx it should be more crippled, afaik...

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA

Reply 84 of 98, by Falcosoft

User metadata
Rank l33t
Rank
l33t

Yes, GTX 1xxx should have the same DOS compatibility level as GTX 9xx.
That is Function 07h - Set/Get Display Start calls fail and as an64 pointed out Function 0Ah - Return VBE Protected Mode Interface calls also fail.
But both of these problems can be cured the same way on GTX 1xxx as on GTX 9xx.

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 85 of 98, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
Falcosoft wrote on 2023-12-11, 22:19:

Yes, GTX 1xxx should have the same DOS compatibility level as GTX 9xx.
That is Function 07h - Set/Get Display Start calls fail and as an64 pointed out Function 0Ah - Return VBE Protected Mode Interface calls also fail.
But both of these problems can be cured the same way on GTX 1xxx as on GTX 9xx.

Quake gets a GPF on both my machines, I used FreeDOS to run it. Not sure how to fix that, I have both HIMEMEX and JEMM386 loaded.
On the machine that has a working "Legacy USB support" motherboard setting, I played the first level of Duke Nukem 3d but I don't recall seeing any problems on the Ivy Bridge chipset. On the GTX1000 series machine the keyboard doesn't work in games, maybe I will need a PS2 keyboard after all, but once I get it to work I should be able to test it. Is there some specific spot that I should check? Btw the game runs and starts the demo and I don't see any issue there..

One thing that I can't recall, if it is true or not, when I tested the DN3D on the Ivy Bridge machine with the menu on launching the game (not exiting to title screen), the menu demo runs that when DN drops into the water, and all the menu elements turn into pink from red-orange.

Edit: I decided to perform the test on the VMware BIOS and that one is even more crippled: Falco's test freezes even before the whole square is displayed.

previously known as Discrete_BOB_058

Reply 86 of 98, by trannks

User metadata
Rank Newbie
Rank
Newbie
Falcosoft wrote on 2023-12-11, 22:19:

Yes, GTX 1xxx should have the same DOS compatibility level as GTX 9xx.
That is Function 07h - Set/Get Display Start calls fail and as an64 pointed out Function 0Ah - Return VBE Protected Mode Interface calls also fail.
But both of these problems can be cured the same way on GTX 1xxx as on GTX 9xx.

Do you know about this issue with GTX 1060 3GB(MSI) but not with GTX 750 1gb(MSI)?:
gtx 1060(3gb), when booting I get error 'vdd protection error', booting with gtx 750(1gb) there is no error:

The attachment IMG_1982.png is no longer available
The attachment IMG_1983.png is no longer available

vdd may be basic video driver ?:
display=*vdd,*vflat ; from system.ini, section [386Enh])

bootlog stops at:
...
[000BB02E] Dynamic load success C:\WINDOWS\system\IOSUBSYS\bigmem.drv
[000BB02E] DEVICEINITSUCCESS = IOS
[000BB02E] DEVICEINIT = PAGEFILE
[000BB02E] DEVICEINITSUCCESS = PAGEFILE
[000BB02E] DEVICEINIT = PAGESWAP
[000BB02E] DEVICEINITSUCCESS = PAGESWAP
[000BB02E] DEVICEINIT = PARITY
[000BB02E] DEVICEINITSUCCESS = PARITY
[000BB02E] DEVICEINIT = REBOOT
[000BB02E] DEVICEINITSUCCESS = REBOOT
[000BB02E] DEVICEINIT = EBIOS
[000BB02E] DEVICEINITSUCCESS = EBIOS
[000BB02E] DEVICEINIT = VDD

Tested on asrock h87(haswell) and on z690(alder lake), its the same issue.
Also on gtx 1060 the blinking cursor in dos blinks many times faster than normal. This is not an issue with gtx 750.
in autoexec, I tried with nvuvafix.com /v:
VBEVSTST.EXE reports this, and switching between 00h and 80h seems accelerated, did it a few times and it froze:

GetStart is supported
GetStart call failed
GetStart is Supported <00h> (and 80h)
GetStart call failed <00h> (and 80h)

in autoexec, i tried with MSKVBEF7.COM:
VBEVSTST.EXE reports this, switching between 00h and 80h seems normal and after I did it a few times it did not freeze:
GetStart is supported
GetStart call failed
GetStart is Supported <00h> (and 80h)
GetStart call failed <00h> (and 80h)

With both it does not fix the fast blinking cursor in dos and still the same VDD error when booting windows.

Can't boot win98 if the gtx 1060 is in the pcie slot.
I can dual boot win10 and win98 with GTX750 and ati x600 pcie.
VBETEST.EXE:

The attachment IMG_1982.png is no longer available

Reply 87 of 98, by Falcosoft

User metadata
Rank l33t
Rank
l33t
trannks wrote on 2024-01-08, 10:15:

Do you know about this issue with GTX 1060 3GB(MSI) but not with GTX 750 1gb(MSI)?:

Hi, this topic is about VESA BIOS problems of these cards (that is "SVGA" modes that DOS games/applications use). Your problem is completely different.
Windows drivers of Geforce cards and Windows itself do not use VESA at all.
So do not expect that either MSKVBEF7 or NVUVAFIX can cure general compatibility problems. They only fix specific VESA related issues (even fast cursor blinking is not one of them).

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 88 of 98, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

What drivers he use on w9x? Afaik nvidia drivers don't support 7xx cards on w9x so he has only choice to use VBEMP by Bearwindows that relies on VESA so it may b affected by vbe bugs, I don't know what specific functions vbemp use...

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA

Reply 89 of 98, by Nopa

User metadata
Rank Newbie
Rank
Newbie

I recall seeing a rare GTX 1060 3GB with VGA port back in the days. Should've pulled the trigger on it.

Pascal was the heaviest Bandwidth compressed architecture of all time which's perfect for IQ testing especially with modern GRD and calibration devices/comparison equipments.

Reply 90 of 98, by MANI

User metadata
Rank Newbie
Rank
Newbie
Falcosoft wrote on 2017-12-13, 02:56:
Hi, I have noticed that one of the more important VESA (VBE) functions always fails on my Geforce GTX 960. I could also reproduc […]
Show full quote

Hi,
I have noticed that one of the more important VESA (VBE) functions always fails on my Geforce GTX 960. I could also reproduce the bug on a GTX 1060.
The buggy function is this:
Function 07h - Set/Get Display Start.
This is a required function at least form VBE 1.2 and used for implementing virtual scrolling and hardware double/triple buffering (so it's an important one).
The function is reported as supported but always fails on the tested cards. I would like to get some help to find out whether all the NVIDIA cards in these newer series are affected and in which series the bug appeared.
I have written a little test (VBEVSTST.EXE attached, source code included) that can be used to discover if a card is affected. After staring the program in DOS/Win9x/XP you just have to press the arrow keys. If Set/Get Display Start is working then you will see the screen moving in the corresponding directions and also you can see some info about the function call success.
Also Scitech Display Doctor(UniVbe)'s VBETEST.EXE can be used for testing. Both the virtual scrolling and double buffering test fail if the card is affected (more precisely the double buffering test is 'working' but you will see flickering screen and always 'Page 1 of x' info instead of paging).
Thanks in advance for your help.

The attachment FALCO_VBEVSTST.zip is no longer available
The attachment UNIVBE_VBETEST.zip is no longer available

@Edit:
!!! For Geforce 4xx and 5xx series users: Please, help us by testing your cards since this way we can identify the first generation of cards where this bug appeared. Thanks !!!

@Edit2:
There is now a workaround available (in the form of my MSKVBEF7 patch/TSR) that according to tests fix problems at least with Quake1 and Build engine games ( Blood and DND3D tested).
MSKVBEF7 download:
download/file.php?id=56935
https://falcosoft.hu/dos_softwares.html#mskvbef7

Reply 91 of 98, by MANI

User metadata
Rank Newbie
Rank
Newbie

i tested VBEVSTST.EXE on my GTX 750 Ti (Maxwell) and unfortunately, Set/Get Display Start fails here as well. Virtual scrolling and double buffering don’t work, and I get the same flickering in UniVBE’s test. So it seems the issue affects the 700 series too.

Reply 92 of 98, by MANI

User metadata
Rank Newbie
Rank
Newbie

I also noticed that the function fails both in real DOS and in the Windows 98 DOS box on my system. Has anyone seen any difference between these environments, or is the failure consistent everywhere?

Reply 93 of 98, by MANI

User metadata
Rank Newbie
Rank
Newbie

Thanks again for providing the test tools and detailed information. This kind of collaborative troubleshooting really helps the retro gaming and DOS community. I’ll keep testing on other cards and update if I find anything new.

Reply 94 of 98, by Falcosoft

User metadata
Rank l33t
Rank
l33t
MANI wrote on 2025-04-21, 11:35:

I also noticed that the function fails both in real DOS and in the Windows 98 DOS box on my system. Has anyone seen any difference between these environments, or is the failure consistent everywhere?

Yes, this bug is consistent everywhere. It does not matter what OS you are using as long as the OS relies on VESA Bios calls. Win9x relies on the card's BIOS implemetation in case of VESA modes. No virtualization is involved.

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 95 of 98, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

Only way how to fix Win98 on these card, beside addiotinal video cards, is some probably small crowd funding to make it profitable for BearWindows driver author, i can throw a few bucks to it.

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 96 of 98, by Falcosoft

User metadata
Rank l33t
Rank
l33t
ruthan wrote on 2025-04-24, 04:08:

Only way how to fix Win98 on these card, beside addiotinal video cards, is some probably small crowd funding to make it profitable for BearWindows driver author, i can throw a few bucks to it.

As far as I know these drivers still rely on a healthy VESA BIOS implementation to work properly.

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 97 of 98, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

So it depends if we can make some workarounds for situation when VESA implementation is broken..

In very very simplified view, when you can set resolution (already done) and putpixel (draw 1 pixel) is working you can make everything to draw properly if you would able to catch user action events interaction with screen rendering and adjust them 😀 Of course there could be more simple approach to fix only lowlevel own problems and fix them by some hex driver edits, without doing some event catching daemon overhaul..

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 98 of 98, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

Sure, the driver can be implemented using only few VBE functions - just set vmode and then draw all into FB and use software double buffer avoiding advanced (broken) VBE functions. But the result will be slower. On the other hand, nowdays PCIe VGA can have throughput 2-5 GB/s to FB so it should be enough for smooth 2D drawing. Problem are old programs that relies on advanced VBE functions and you don't have sources to patch them. In theory one could write it's own correct VBE implementation like UniVBE for modern VGA e.g. based on opensource linux drivers but it's a lot of work...

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA