First post, by an64
Universal NVIDIA vbe function 0A fix for gtx 9xx and newer(not tested) ver 1.2
For warcraft II , Build engine games ( DND3D and Blood ) and maybe other games
I have noticed that one of the VESA (VBE) functions always fails on my
Geforce GTX 980Ti.
This is a Function 0Ah - Return VBE Protected Mode Interface , it always
returns ax=014fh (Function call failed).
This bug prevents warcraft II to run, it crashes or displays distorted image,
depends of environment.
So i sat down, read docs, remember x86 assembler and created this small TSR.
It intercepts int 10h func 0ah and return its own protected mode code for
vbe func 5 ,7 and 9.
For func 5 and 9 this code then routes trough DPMI 0300h (SIMULATE REAL MODE INTERRUPT)
to the plain real mode vbe functions.
This may lead in theory to some micro slowdown, but who cares
of this on the modern cpu? )
You may try /5 and /9 for use protected mode code from gtx520, it may give
you some fps. Works on gtx980ti
For func 7 it uses unmodified protected mode code from gtx520
If you using this tsr with Build engine games , you do NOT need MSKVBEF7 , as
it disables double buffering , but you can load both tsrs for example
to compare fps.
Tested under these environments:
dos , dos+emm386 , dos+jemmex , dos+jemmex+hdpmi32i+sbemu , OS/2 vdm
Start nvuvafix.com , then duke3d.exe
You can try to disable vsync in duke3d and other games, wich uses func 7,
for that use commandline switch /n :
Also you can force vsync with /v switch:
Start nvuvafix.com , then war2.exe
If war2.exe crashes , try to run it with dos32a:
Feel free to test this TSR with other programs/games, potentially it can fix
ones, wich uses vbe protected mode interface.
Add /n and /v switches
Add /5 and /9 switches
Thanks Falcosoft for MSKVBEF7 and some ideas
NVIDIA Kepler/Maxwell/Pascal VESA Bios Bug (workaround found)
Thanks crazii for amazing sbemu!
It works fine here with sblive.
SBEMU: Sound Blaster emulation on AC97
Thanks RayeR for mtrrlfbe, it works on my intel ivi bridge