VOGONS


First post, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

Hi,
I got some used EVGA GTX 670 for repair and made it working again. Of course I was curious how well or bad has developed the nVidia VBE implementation - how much the card will be usable also for DOS gaming.

It pretend to have 14MB framebuffer as usual and supports VBE 3.0 with all common modes (including 1600x1200/8/16/32 for my 4:3 LCD). It passed my VESATEST with 2,8GB/s transfer rate.
OK, but then I had found serious problem in Blood and DN3D where I see a strange flickering almost all time during play:
https://www.youtube.com/watch?v=TV6EAeP8sI8
Unfortunately the flickering remains when I select a different resolution (tried all available, incl. 320x200) just a rate of flickering changes a little bit. In fact it makes these games unplayable 🙁 On my current old 7900GT I have similar problem only at 1280x1024 and higher resolution and only at bottom side (HUD) of screen and not all time so it was playable. In lower res. it was absolutely flicker free. I also tried 8600GT and GT230 that also don't suffer such problem. So it seems that nVidia fucked something up in recent videoBIOS.
Did you experienced this behavior too? Is there any solution - a patch for game or TSR? If cards from other manufacturers don't have this problem I could reflash the videoBIOS. I found a note for S3VBEFIX utility made by other member here that it should fix flickering on S3 cards so I hope there maybe also solution for nvidias.

Later I found that some flickering is also happening in Quake 1 (original engine) but it's more regular than random and ONLY in some resolutions while other res. are absolutely flicker-free so I can easily select a non-flicker one. Any other games and demos I tried didn't suffer flickering.

And the second problem is that this VBIOS doesn't support 8x14 font that some old progs and games use. It should be fixed by this tool:
https://www.bttr-software.de/products/fix8x14/
In my case I found a messed up font in game menu of Commander Keen 4 but I'm not sure if it has the same cause (fix8x14 tool didn't helped here).

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

Reply 1 of 3, by Falcosoft

User metadata
Rank l33t
Rank
l33t

Hi,
I could not test GTX 6xx series myself but I have tested later Maxwell/Pascal VBE implementations and they all have this same flickering problem because of a VESA BIOS bug. In case of Maxwell/Pascal the buggy function is this: Function 07h - Set/Get Display Start. More info about this issue:
NVIDIA Kepler/Maxwell/Pascal VESA Bios Bug (workaround found)
I have also written a little test to identify exactly this problem:
download/file.php?id=41406
Please run it and report back if the function calls fail/succeed with your Geforce when you press the arrow keys.

If your Kepler Geforce has the same problem then in Quake 1 you can prevent the flickering by disabling page flipping in console of Quake 1:
Type in vid_nopageflip 1 and then restart.
More info:
Old+Modern videocards pure DOS benchmarking- which one is fastest?, need your numbers + analysis, 320x200 to 1600x1200!
(Disabling page flipping in Quake1 can also solve the mysterious 640x480/800x600/1024x768 modes are slower than 1280x1024 since it also disables v-sync that is on by default in case of enabled page flipping. But this is a completely different issue)

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

Reply 2 of 3, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

Hi, thank you for pointing to the right direction.
I would expect such kind of bug from nvidiots because it's not the first time (neither last time) when they messed something up in newer BIOSes 🙁
I personally never used this VESA function in my code. More info e.g. here: https://github.com/nathanpeck/euphoria/blob/m … ssion/Vbe20.txt at line 1172 - 4.10. Function 07h - Set/Get Display Start.
I did a quick test as I was in a hurry. Your test tool displayed a square in the center but it was not moving by arrow keys and it reported some errors. I'll take screenshot later. Then I set "vid_nopageflip 1" in Quake and flickering was gone, all videomodes now works fine, thanks 😀

It's a pity that your thread about this serious bug was received too little attention from other Vogons users. It's just a few minutes that others could participate at least on narrowing the problem to find which GTX series had introduced this bug.

So how can we deal with this bug? Is it possible to fix it in BIOS disassembly? It seems the function is not void but it needs arguments to be aligned with some granularity so some modes works and some don't. This may require extra code space in video BIOS memory that may not be available.
Other solution would be to write a TSR that hook INT 10h and run fixed version of this function. Or is it possible to force-disable reporting this function as supported? Then user program should not use this function and do just a buffer copy to VRAM.
Is it possible to enforce page flipping disabled in Blood, DN3D, SW and other Build games? Or do they need to be patched? I don't know how Build rendering works if it has an alternative code that can work without page flipping or not - this could be investigated from DN3D open sources...

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

Reply 3 of 3, by Falcosoft

User metadata
Rank l33t
Rank
l33t

Hi,
According to your quick test this is exactly the same problem as in case of Maxwell/Pascal.
I have replied to you in the other thread referenced above:
Re: NVIDIA Kepler/MaxWell/Pascal VESA Bios Bug (Please, participate since more data needed)
Let's continue the discussion there (now it has a little more attractive title).

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