First post, by an64

User metadata
Rank Newbie

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 :
nvuvafix.com /n
Also you can force vsync with /v switch:
nvuvafix.com /v

Warcraft II:
Start nvuvafix.com , then war2.exe
If war2.exe crashes , try to run it with dos32a:
dos32a.exe war2.exe

Feel free to test this TSR with other programs/games, potentially it can fix
ones, wich uses vbe protected mode interface.

ver 1.1:
Add /n and /v switches

ver 1.2:
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


Reply 1 of 1, by Duffman

User metadata
Rank Member

nice work!

MB: ASRock B550 Steel Legend
CPU: Ryzen 9 5950X
RAM: Corsair 64GB Kit (4x16GB) DDR4 Veng LPX C18 4000MHz
SSDs: 2x Crucial MX500 1TB SATA + 1x Samsung 980 (non-pro) 1TB NVMe SSD
OSs: Win 11 Pro (NVMe) + WinXP Pro SP3 (SATA)
GPU: RTX2070 (11) GT730 (XP)