VOGONS


First post, by wbc

User metadata
Rank Member
Rank
Member

This utility allows to use certain DOS VESA and Win3.x drivers on newer NVidia GPUs, such as Riva TNT family and GeForce 256 up to FX series (theoretically up to 7xxx).

Supported drivers:

  • SciTech Display Doctor (aka UniVBE) 6.53 and 6.7
  • Riva TNT/TNT2 Windows 3.x drivers, v 1.55 (untested)

DISCLAMER: THIS UTILITY IS PROVIDED "AS-IS", I bear no responsibility for any harmful or undesired actions or consequences caused by using it on your hardware, although the probability of such outcomes are extremely low (unless you are using some very very ancient VGA monitor unable to tolerate out-of spec timings). In other words: use at own risk :)

DOWNLOAD is in attachments, source code and latest releases are available in GitHub repository: https://github.com/wbcbz7/nvpatch-dos

SciTech Display Doctor

Although built-in NVidia VBE 3.0 support is near-perfect and compatible with large variety of DOS software, it has a few shortcomings - like 15bpp modes being missing (required by games like Alien Trilogy in high-color mode or X-Men Children of the Atom), or lack of several low-resolution modes like 320x480 or 512x384. In the past, utilities like SciTech Display Doctor (also known as UniVBE) were popular choice for fixing VBE issues and providing additional features like linear frame buffer, low-resolution modes, etc. Unfortunately, support for NVIDIA graphics chips is very sloppy, and anything newer than Riva TNT is not actually supported. NVPatch hacks hardware detection routines and makes those utilities run on newer hardware. Additional side-effect is custom refresh rate stuff working again on late Geforce FX and newer cards :)

Known benefits over stock NV VESA BIOS:

  • more low-res modes: 320x480, 400x300, 512x384 and 640x350, in addition to already supported 320x200/240, 320x400, 640x400/480 and above.
  • 15 bits per pixel RGB555 modes added, in addition to 16/256color, 16bpp and 32bpp. 24bpp (packed RGB888) is not supported in hardware, though very few VESA applications require this and do not work at other bit depths, so it's not a big issue.
  • generally higher compatibility with quirky/buggy VESA applications.
  • flexible refresh rate and screen adjustment management (no UniRefresh/VBEHz and similar utilities required)

Known limitations:

  • only primary VGA output is supported! DO NOT try to use patched UniVBE on DVI/HDMI displays, as it will blank the display (and possibly crash the system) while attempting to set any VESA mode. Besides, DVI support under plain DOS on NV chips is far from perfect: image is blurry, frame rate is locked to 60fps and some games don't work properly, while running fine on VGA.
  • modes above 1024x768 are not tested and may not work properly

NVPatch supports both SDD 6.53 and 6.7 (DOS only). Personally, I would recommend SDD 6.53, and only if it does not work properly, then try 6.7

SDD 6.53

uses RIVA 128 support code, needs quite an intensive patching ;)
Known limitations:

  • VRAM size is limited to 8 MB
  • max. provided resolution is 1600x1200
Patch usage:
  1. Install SDD as usual
  2. Copy NVPATCH.EXE to SDD directory, and run it. Check if all files under SDD 6.53 description are marked as "ok", ignore others.
  3. If your graphics card has more than 8 MB of VRAM, run
    UVCONFIG.EXE -m8912
    CONFIG.EXE -m8192
    Else, run UVCONFIG.EXE and CONFIG.EXE without any command line parameters. If both runs succeed, then SDD is patched and configured properly.
  4. Run UNIVBE.EXE
  5. Run any VESA application (VBETEST from SDD package is a perfect match :)
  6. (optional but recommended) Run UNICENTR.EXE and adjust screen position for VESA modes

SDD 6.7

uses RIVA TNT2 support code, may have better GPU compatibility than SDD 6.53
Known limitations:

  • VRAM size is usually limited to 16 MB
  • unlike 6.53, doesn't provide certain low-resolutions VESA modes (namely, 320x200, 320x400 and 320x480). Since 320x200 VESA is used by some DOS demos and games, you have to use native NV VESA BIOS or SDD 6.53 for those apps.
Patch usage:
  1. Install SDD as usual
  2. Copy NVPATCH.EXE to SDD directory, and run it. Check if SDD 6.7 UVCONFIG.EXE is marked as "ok", ignore others.
  3. Run UVCONFIG.EXE, if it succeeds, then SDD is patched and configured properly.
  4. Run UNIVBE.EXE
  5. Run your favorite VESA application :)
  6. (optional but recommended) Run UNICENTR.EXE and adjust screen position for VESA modes
Tested NVidia cards and GPUs:

Tested and working (more or less) fine on:

  • RIVA TNT 16 MB AGP (6.7 works out of the box, 6.53 needs patching)
  • RIVA TNT2 M64 16 MB and 32 MB, both AGP (strangely, while 6.7 declares TNT2 support, without NVPatch it does work only with TNT2 Ultra, judging by PCI Device ID)
  • Vanta 16 MB and Vanta LT 8 MB, both AGP
  • GeForce 2 MX200 32MB and MX400 64 MB, both AGP
  • GeForce 4 MX440 64 MB AGP
  • GeForce FX5200 and FX5500, both 128MB AGP (the latter has the infamous broken VBE3.0 custom refresh rate support in it's video BIOS, and it works again with SDD)

Does not work on:

  • GeForce 7600GS 256MB PCIe (blank screen upon any VESA mode set, goes back to VGA modes fine)

Windows 3.1 Display Driver
NOTE: unfinished, still broken, moreover, it's buggy even on a TNT itself (fonts corruption, DCI not working, etc.). basically you have to patch NV4VDD.386 file from driver package, then install the drivers as usual.

as usual, comments, suggessions, testings etc. are always welcome :)

Attachments

  • Filename
    nvpatch.zip
    File size
    36.54 KiB
    Downloads
    135 downloads
    File comment
    NVPatch initial release
    File license
    Fair use/fair dealing exception

--wbcbz7

Reply 1 of 11, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie

Unfortunately I cannot confirm that this can work beyond Geforce FX. I have tested Geforce 6600 AGP and 6600GT AGP and none of them worked with patched 6.53 univbe.
The patched univbe can run without problems and vbetest also shows working univbe with VESA 3.0 8MB but none of the selected vesa modes gives picture. In most cases the monitor turns off but it can be waked by pressing esc (so no freezing happens just simply nothing is displayed).
I'm sad since I was hoping refresh rate adjustmenet under DOS with Geforce 6 cards (none of them supports it under DOS natively).

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

Reply 2 of 11, by Gmlb256

User metadata
Rank l33t
Rank
l33t

Did test with both TNT2 and GeForce2 GTS AGP cards on my Slot 1 computer and the patch mostly worked well in regard to 15bpp and low resolution VESA video modes. UNICENTR from UniVBE 6.7 is more stable when setting the position and refresh rates for each VESA video mode.

Unfortunately, Alien Trilogy's high color mode freezes the computer when using SDD 6.53. With UniVBE 6.7, it loads with the correct colors, but the screen looks messed up. 🙁

I suspect that it is due to the Display Window Control function (4f05h) not working as intended. Perhaps patching it or making a separate TSR that calls the native VESA BIOS directly could be used as a workaround (NVVBEFIX in the future? 😁).

VIA C3 Nehemiah 1.2A @ 1.46 GHz | ASUS P2-99 | 256 MB PC133 SDRAM | GeForce3 Ti 200 64 MB | Voodoo2 12 MB | SBLive! | AWE64 | SBPro2 | GUS

Reply 3 of 11, by wbc

User metadata
Rank Member
Rank
Member
Falcosoft wrote on 2023-06-02, 23:24:

Unfortunately I cannot confirm that this can work beyond Geforce FX. I have tested Geforce 6600 AGP and 6600GT AGP and none of them worked with patched 6.53 univbe.
The patched univbe can run without problems and vbetest also shows working univbe with VESA 3.0 8MB but none of the selected vesa modes gives picture. In most cases the monitor turns off but it can be waked by pressing esc (so no freezing happens just simply nothing is displayed).
I'm sad since I was hoping refresh rate adjustmenet under DOS with Geforce 6 cards (none of them supports it under DOS natively).

I had exactly the same issue with 7600GS, so I assume NV changed the inititlaization method somehow starting with 6xxx series. As a workaround, try running NVSDDFIX.COM before running UNIVBE.EXE, but I doubt that will do the trick; will peek at this issue later :)

Gmlb256 wrote on 2023-06-02, 23:35:

Unfortunately, Alien Trilogy's high color mode freezes the computer when using SDD 6.53. With UniVBE 6.7, it loads with the correct colors, but the screen looks messed up. 🙁

This one sounds weird as well, Alien Trilogy seems to work for me on both GF2 MX200 and FX5500 with patched SDD 6.53 (the other specs are Celeron 300A/i440BX/256MB/IDE CD-ROM/DOS 7.1 + UMBPCI + UIDE + SHSUCDX, TRILOGY.EXE is dated Nov 13 1996 19:41). First mode-switch is pretty long (waiting a moment at "Detecting card" message, then black screen for a couple of seconds) but then both copyright screen, introduction movies, main menu and in-game graphics work without hassle. Try booting to plain DOS + HIMEM.SYS + CD-ROM drivers, and run the game again.

Gmlb256 wrote on 2023-06-02, 23:35:

Perhaps patching it or making a separate TSR that calls the native VESA BIOS directly could be used as a workaround (NVVBEFIX in the future? 😁).

this was actually the first idea I had :D

--wbcbz7

Reply 4 of 11, by Gmlb256

User metadata
Rank l33t
Rank
l33t
wbc wrote on 2023-06-03, 08:48:

This one sounds weird as well, Alien Trilogy seems to work for me on both GF2 MX200 and FX5500 with patched SDD 6.53 (the other specs are Celeron 300A/i440BX/256MB/IDE CD-ROM/DOS 7.1 + UMBPCI + UIDE + SHSUCDX, TRILOGY.EXE is dated Nov 13 1996 19:41). First mode-switch is pretty long (waiting a moment at "Detecting card" message, then black screen for a couple of seconds) but then both copyright screen, introduction movies, main menu and in-game graphics work without hassle. Try booting to plain DOS + HIMEM.SYS + CD-ROM drivers, and run the game again.

Mine is patched to version 2.0, TRILOGY.EXE being dated Dec 23 1996 16:06.

Tried booting DOS with just HIMEM.SYS and CD-ROM support, still freezes the computer with SDD 6.53 after the passing the "Detecting card" message. 🙁

VIA C3 Nehemiah 1.2A @ 1.46 GHz | ASUS P2-99 | 256 MB PC133 SDRAM | GeForce3 Ti 200 64 MB | Voodoo2 12 MB | SBLive! | AWE64 | SBPro2 | GUS

Reply 5 of 11, by wbc

User metadata
Rank Member
Rank
Member
Gmlb256 wrote on 2023-06-03, 14:30:

Mine is patched to version 2.0, TRILOGY.EXE being dated Dec 23 1996 16:06.

Tried booting DOS with just HIMEM.SYS and CD-ROM support, still freezes the computer with SDD 6.53 after the passing the "Detecting card" message. :(

installed the 2.0 patch, seems to work OK on my configuration :/ (UPD: tried on TNT2 M64, works as well)

If SDD is not loaded, vertical stripes are shown instead of copyright screen, and main menu colors are garbled:

photo_2023-06-03_22-07-25.jpg
Filename
photo_2023-06-03_22-07-25.jpg
File size
271.01 KiB
Views
1660 views
File license
Fair use/fair dealing exception

If I load the patched UNIVBE.EXE, then everything work as expected, with correct image:

photo_2023-06-03_22-07-28.jpg
Filename
photo_2023-06-03_22-07-28.jpg
File size
150.09 KiB
Views
1660 views
File license
Fair use/fair dealing exception

Does high-color version work on your configuration with cards that support 15bpp, for example S3 Trio/Savage?

--wbcbz7

Reply 6 of 11, by Gmlb256

User metadata
Rank l33t
Rank
l33t
wbc wrote on 2023-06-03, 15:09:

If SDD is not loaded, vertical stripes are shown instead of copyright screen, and main menu colors are garbled:

Those vertical stripes and bad colors happen in my case too on nVidia video cards without SDD/UniVBE.

Vertical Stripes.jpg
Filename
Vertical Stripes.jpg
File size
571.56 KiB
Views
1635 views
File comment
Notice the overscan borders where the copyright screen should appear since I'm using a CRT monitor. Doesn't appear when it is displayed properly.
File license
Fair use/fair dealing exception
Bad Colors.jpg
Filename
Bad Colors.jpg
File size
688.74 KiB
Views
1635 views
File license
Fair use/fair dealing exception

Does high-color version work on your configuration with cards that support 15bpp, for example S3 Trio/Savage?

Yes, it works without any problems on any video card that supports 15bpp out of the box.

VIA C3 Nehemiah 1.2A @ 1.46 GHz | ASUS P2-99 | 256 MB PC133 SDRAM | GeForce3 Ti 200 64 MB | Voodoo2 12 MB | SBLive! | AWE64 | SBPro2 | GUS

Reply 7 of 11, by wbc

User metadata
Rank Member
Rank
Member
Gmlb256 wrote on 2023-06-03, 15:54:

Notice the overscan borders where the copyright screen should appear since I'm using a CRT monitor. Doesn't appear when it is displayed properly.

Can confirm the white overscan between "Detecting Video" and the copyright screen, but otherwise it seems to work for me (also, additionally tested on Cel1000A/i815/TNT2 M64). also, skewed screen on SDD 6.7 confirmed

Gmlb256 wrote on 2023-06-03, 15:54:

Yes, it works without any problems on any video card that supports 15bpp out of the box.

I suspect there could be some sort of compatibility trouble with your machine in SDD 6.53 itself- does it crash the system when using with other non-NV cards?

p.s. by the way, I'm using SDD from univbe67.exe and sdd653-d.zip from this archive, if that makes sense :)

--wbcbz7

Reply 8 of 11, by Gmlb256

User metadata
Rank l33t
Rank
l33t
wbc wrote on 2023-06-03, 18:47:

I suspect there could be some sort of compatibility trouble with your machine in SDD 6.53 itself- does it crash the system when using with other non-NV cards?

No, Alien Trilogy with SDD 6.53 loaded doesn't freeze the computer with non-nVidia cards.

I'm also suspecting that there could be indeed a specific compatibility issue with my computer when using the RIVA 128 support code with this game. 😒

VIA C3 Nehemiah 1.2A @ 1.46 GHz | ASUS P2-99 | 256 MB PC133 SDRAM | GeForce3 Ti 200 64 MB | Voodoo2 12 MB | SBLive! | AWE64 | SBPro2 | GUS

Reply 9 of 11, by badmojo

User metadata
Rank l33t
Rank
l33t

Thankyou very much for this OP, this is something I've been wanting for a while now so was very excited when someone directed me to it. I was limited to a Riva 128 card because I use UniVBE with the DOS version of MEKA, but that meant my Win98 3D capabilities weren't great.

I tried it with a TNT2 M64 PCI and it works very well, so now I have great 2D and (pretty) great 3D in one machine.

Life? Don't talk to me about life.

Reply 10 of 11, by digistorm

User metadata
Rank Member
Rank
Member

I am also very glad with this patch. I use a GeForce 2 MX and it can’t do 15 bit video modes and lacks the low res modes 400x300 and 512x384. Now I don’t have to swap video cards when I want to use those resolutions.
The only minor thing (but it was probably assumed) is that you have to register the software first (it is free) otherwise it will keep nagging you about it. If you do it afterwards the patch is undone.

Reply 11 of 11, by badmojo

User metadata
Rank l33t
Rank
l33t

I had an interesting result when using this patch with a PCI Geforce4 MX440. When using Univbe 6.53 it worked as expected, but with v6.7 the card's default refresh rate was ~133Hz! I tried to use UNIRFRSH to set it to something more reasonable, but that only increased the refresh rate, even if I specified 70 Hz.

Not a big deal and it's unlikely anyone cares, I just thought I'd mentioned here.

Life? Don't talk to me about life.