VOGONS


First post, by an64

User metadata
Rank Newbie
Rank
Newbie

NVIDIA vbe function 0A fix for gtx 9xx and newer(not tested)
For warcraft II 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.
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? )

Tested with Warcraft II dos version under these environments:
dos , dos+emm386 , dos+jemmex , dos+jemmex+hdpmi32i+sbemu , OS/2 vdm

Start nvvbe0a.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 bank swithching and vbe protected mode interface.

Ps
Thanks crazii for amazing sbemu!
It works fine here with sblive.
SBEMU: Sound Blaster emulation on AC97

Thanks Falcosoft for MSKVBEF7 , take it if you want to play DukeNukem3d on
the newer nvidia card
NVIDIA Kepler/Maxwell/Pascal VESA Bios Bug (workaround found)

Attachments

  • Filename
    NVVBE0A.ZIP
    File size
    20.56 KiB
    Downloads
    34 downloads
    File license
    Public domain
Last edited by an64 on 2023-08-29, 11:32. Edited 1 time in total.

Reply 1 of 5, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie

Excellent work. I wonder if there are any detailed tools to test the functionality of the functions in question after applying this fix.

Does this fix supersede MSKVBEF7, or that both fixes can coexist?

Reply 3 of 5, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
LSS10999 wrote on 2023-08-28, 05:17:

Excellent work. I wonder if there are any detailed tools to test the functionality of the functions in question after applying this fix.

Does this fix supersede MSKVBEF7, or that both fixes can coexist?

1. None that I know of. It seems Warcraft2 is the best tool to test this fix and DN3D, Blood (or other Build engine games) to test MSKVBEF7.
2. No, it does not.
3. Yes, they can coexist.

@an64:
Yep, it fixes the startup problem of war2.exe, great work!

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

Reply 4 of 5, by an64

User metadata
Rank Newbie
Rank
Newbie
LSS10999 wrote on 2023-08-28, 05:17:

Excellent work. I wonder if there are any detailed tools to test the functionality of the functions in question after applying this fix.

Hmm, i dont know..
vbetest works without this tsr,seems it respects error code ,returned by bios and not uses protected mode interface, but also it works with it, and definitely uses proteced mode interface

LSS10999 wrote on 2023-08-28, 05:17:

Does this fix supersede MSKVBEF7, or that both fixes can coexist?

No, mskbve7 cures vbe function 07h , warcraft not using this,as it not using linear framebuffer
You can load both tsr ,but this is useless, i dont know any game that uses linear framebuffer
and _require_ protected mode interface without fallback