VOGONS


Help concerning VBE/VESA in DOS

Topic actions

First post, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie

Hey guys

There's every chance this may not make the slightest bit of difference in the longrun, but would still very much like to try it, so I can eliminate the possibility. I've mentioned before that I've had, and have, a weird issue with Broken Sword 1 where the sprites, animations, and cursor flicker. The problem was resolved in Windows and is partially resolved in DOS. For the most part the game is fine under DOS, providing I start the game using the command 'safevideo'. All that leaves is the flickering cursor issue.
I've tried looking up similar threads here about the issue, where some encountered it using DOSBox, but I think that was related to using specific cycles. I've tried reducing the speed of the CPU, and disabling the cache, but it didn't work. I even reached out to one of the programmers on Twitter to see if he could shed some light into any other commands I could use, but nada. So that's left me with one other possibility - VESA. Or VBE. The graphics used by DOS. The flickering cursor under Windows was related to the graphics. Whether using the wrong drivers or disabling Direct3D/Draw. I came across custom drivers (wrappers?) for VBE, but I can't seem to get them to work. The most recent I tried was from here - https://dosdriver.de/graph.php
When I tried FreeBE/AF, it complained about "Load error: no DPMI - Get csdpmi*b.zip". So I downloaded a CWSDPMI file, but that just gave me an error with a load of numbers and letters. I tried downloading these from DOS Days - https://www.dosdays.co.uk/topics/graphics_drivers.php - but couldn't get univbe to work. That claimed I don't have a supported video card and the readme doesn't list Nvidia anyway. I couldn't get the modified UniVBE to work. The readme says something about a 'uvconfig' file, which I see no such thing included. Nor do I know where it is. Unifrsh and Vinfo were the only ones that worked. Though when I tried them that was for my Riva TNT. I've yet the see the results for the Geforce 4 I have. The Riva TNT was listed as having version 204.204 or 3.0.

So ideally I'd love some help on getting VBE or UniVBE to work just to see if it helps or not. 😀 Thanks.

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 1 of 26, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie

With anything VBE related, I need to know what video chipset this is.

Concerning the mouse, this sounds like an issue with "Hardware Cursor" use, but I cannot be sure.

I think the TNT has support in the vintage Scitech Display Doctor community release. Let me check.

edit: Said community release, on Vogons Drivers.
http://www.vogonsdrivers.com/getfile.php?fileid=346

More edit:

The README in the display doctor archive lists the following chipsets as supported.

. 3Dlabs Permedia
. Acer Labs M3141/M3145/M3147V
. Alliance ProMotion 3210/6410/6422/AT24
. ARK Logic ARK1000VL/PV, ARK2000PV, ARK2000MT, Quadro64
. ATI Technologies 18800, 28800, Mach32, Mach64
. Avance Logic ALG2101/2201/2228/2301/2302/2032/2064/2564/25128
. Chips & Technologies 82c45x, 65xx, 643x0 WinGine
. Chromatic Research Mpact!
. Cirrus Logic CL-GD5401/2, CL-GD5422/24/26/28/29 TrueColor VGA
. Cirrus Logic CL-GD5430/34/36, CL-GD5440/46 Alpine VGA
. Cirrus Logic CL-GD5462/64 Laguna VisualMedia
. Cirrus Logic CL-GD6205/15/25/35 LCD
. Cirrus Logic CL-GD6410/12/20/40 LCD, CL-GD7541/42/43/48 LCD
. Compaq IVGS/AVGA, QVision 1024/1280
. Diamond Viper P9000+W5186/OAK87 VLB and PCI
. Everex ET4000 and Trident based boards
. Hualon SuperVGA 86304/14
. IIT AGX-010/11/14/15/16/17
. InteGraphics IGA1680/82/83
. Integrated Micro Solutions Twin Turbo 128
. Macronix SuperVGA 86000/010/100/101/200/250
. Matrox MGA Atlas, Athena, Storm, Mystique
. NCR 77C21/22/22E/32BLT
. NeoMagic NM2070/90/93 LCD
. Number Nine Imagine 128 series I & II
. NVidia NV1, SGS Thompson STG2000 (Diamond Edge 3D)
. OAK Technologies OTI-037C/057/067/077/087, 64105/107
. Paradise/Phillips Pipeline 9710/12
. Paradise/Western Digital PVGA1A, W90C1x/2x/3x
. Primus P2000
. RealTek RTG3103/3105/3106
. S3 86c911/924/80x/928, Vision 864/964/866/868/968, Trio32/64/64V+, Aurora64V+, Virge, Virge/VX
. Sierra Falcon/64, SuperScalar 220
. SiS 86c201, 6202, 6205
. S-MOS SPC8106 LCD
. Trident 88/8900/9x00/8900CL/9200/9320LCD/938xLCD/944x/9660/968x
. Tseng Labs ET3000, ET4000, ET4000/W32/W32i/W32p, ET6000
. UMC SuperVGA 85c408/18
. Video7 VEGA, HT208/209/216
. Weitek 5086/186/286, P9100

The newest nvdia chip is NV1.

SciTech stopped operations/ production of univbe and DisplayDoctor after this archive's release. No further chipset support was added.

I'll look for 1st party VBE TSRs from Nvidia themselves, but dont get your hopes up.

even MOAR edit:

This might work with your TNT, and the above archive.
NVPatch - making UniVBE work on NVidia cards

Last edited by wierd_w on 2025-01-04, 16:20. Edited 1 time in total.

Reply 2 of 26, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
wierd_w wrote on 2025-01-04, 16:09:
With anything VBE related, I need to know what video chipset this is. […]
Show full quote

With anything VBE related, I need to know what video chipset this is.

Concerning the mouse, this sounds like an issue with "Hardware Cursor" use, but I cannot be sure.

I think the TNT has support in the vintage Scitech Display Doctor community release. Let me check.

edit: Said community release, on Vogons Drivers.
http://www.vogonsdrivers.com/getfile.php?fileid=346

I know the readme mentions adjusting the Hardware slider, but of course that's not possible under DOS.

What do you mean regarding video chipset exactly?

Ooh. Awesome. Thanks for the link. I'll download it and give it a try. 😁

EDIT: And thank you for looking. I appreciate it. I wouldn't have a clue what to look for myself. ^^;

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 3 of 26, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie

VBE is a software interface, that relies on a hardware-specific bit of low level code to drive the video hardware.

As such, a software VBE driver needs to be able to work with/know about the video chipset of your video card, in order to do these low level operations, when asked to do things through the vesa method API.

Usually, these two things are supplied *together*, with the VESA bios baked into the card. Some vintage cards (like Tseng Labs cards, especially) dont speak VESA themselves *AT ALL*, but hat sufficiently fast raw frame accesses, and were sufficiently popular, that 3rd party software provided the needed driver to provide VESA functionality for them.

Like Scietech Display Doctor.

Display Doctor is the commercial, buyware version of the limited UniVBE that was packaged as middleware in things like Warcraft 2. It had more bells, whistles, and supported chipsets.

The patch set in the last link there, shoehorns in support for *later* Nvidia chips, up to about GeForce 3, per its page. It allows UVCONFIG and UNIVBE to recognize, configure itself, and provide VBE3 interfaces for cards with supported chips.

It tells you how to manually tell UNIVBE and UVCONFIG which chipset to presume is present to facilitate this, after applying the patch.

Reply 4 of 26, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
wierd_w wrote on 2025-01-04, 16:37:
VBE is a software interface, that relies on a hardware-specific bit of low level code to drive the video hardware. […]
Show full quote

VBE is a software interface, that relies on a hardware-specific bit of low level code to drive the video hardware.

As such, a software VBE driver needs to be able to work with/know about the video chipset of your video card, in order to do these low level operations, when asked to do things through the vesa method API.

Usually, these two things are supplied *together*, with the VESA bios baked into the card. Some vintage cards (like Tseng Labs cards, especially) dont speak VESA themselves *AT ALL*, but hat sufficiently fast raw frame accesses, and were sufficiently popular, that 3rd party software provided the needed driver to provide VESA functionality for them.

Like Scietech Display Doctor.

Display Doctor is the commercial, buyware version of the limited UniVBE that was packaged as middleware in things like Warcraft 2. It had more bells, whistles, and supported chipsets.

The patch set in the last link there, shoehorns in support for *later* Nvidia chips, up to about GeForce 3, per its page. It allows UVCONFIG and UNIVBE to recognize, configure itself, and provide VBE3 interfaces for cards with supported chips.

It tells you how to manually tell UNIVBE and UVCONFIG which chipset to presume is present to facilitate this, after applying the patch.

Thanks for the explanation. 😀 I have managed to get it working. I love it when it's a simple install and it all configures with ease. However, it hasn't fixed the issue with Broken Sword, but made it worse. 🤣 I'm not sure if I'm missing something and there's something not configured correctly or if it's just the wrong solution to this particular problem. When I applied the patch, I get this:

The attachment IMG_3999.JPG is no longer available

Not sure if the lack of config.exe and nv4vdd.386 is fine? At the moment I have my Geforce 4 card in, but when I execute the univbe, it lists three Nvidia TNTs instead. A Riva TNT and two Riva TNT 128s, I think. I configured the resolution, colour depth and refresh rate - 8-bit/256 colours, 640x480, and 60Hz/59Hz, which is what Broken Sword 1 uses, I believe. However, when I load the game, the whole image at the start is completely cropped in a rectangle at the top of the screen and it flickers like crazy. I've tried one or two other options as well.

Of course, it could be that I just need to install my actual Riva TNT...? Failing that, maybe changing the VBE/VESA driver that DOS uses isn't the answer to the problem...?

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 5 of 26, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie

Tried a different mouse driver - Cutemouse - but that didn't fix the problem either. 😒

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 6 of 26, by Gmlb256

User metadata
Rank l33t
Rank
l33t

In your case, I see that it correctly patched UniVBE 6.7 to work with the GeForce4 card. The missing files can be ignored as CONFIG.EXE comes from SDD 6.53 and NV4VDD.386 is a Windows 3.1 driver for the TNT2.

Now, you just have to run UVCONFIG.EXE and from there UniVBE can be executed. Note that it will be detected as a RIVA TNT2 but don't worry about that.

Reply 7 of 26, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
Gmlb256 wrote on 2025-01-05, 20:20:

In your case, I see that it correctly patched UniVBE 6.7 to work with the GeForce4 card. The missing files can be ignored as CONFIG.EXE comes from SDD 6.53 and NV4VDD.386 is a Windows 3.1 driver for the TNT2.

Now, you just have to run UVCONFIG.EXE and from there UniVBE can be executed. Note that it will be detected as a RIVA TNT2 but don't worry about that.

Yeah, I did all that too. It seems to all work correctly, but it makes things worse in BS1 as mentioned above. I also tried it with my Riva TNT, which didn't require the patch at all. The same thing happens though.

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 8 of 26, by Gmlb256

User metadata
Rank l33t
Rank
l33t

Try SDD 6.53 with NVPatch instead to see if it helps.

I had similar issues with UniVBE 6.7 (it is the worst version) on GeForce2 and TNT2 cards when running Alien Trilogy where high color mode was showing correct colors, but the screen wasn't properly displayed.

Reply 9 of 26, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
Gmlb256 wrote on 2025-01-05, 20:37:

Try SDD 6.53 with NVPatch instead to see if it helps.

I had similar issues with UniVBE 6.7 (it is the worst version) on GeForce2 and TNT2 cards when running Alien Trilogy where high color mode was showing correct colors, but the screen wasn't properly displayed.

Huh. I see. Thanks for the suggestion. I'll give that a try and see. 😀

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 10 of 26, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
Gmlb256 wrote on 2025-01-05, 20:37:

Try SDD 6.53 with NVPatch instead to see if it helps.

I had similar issues with UniVBE 6.7 (it is the worst version) on GeForce2 and TNT2 cards when running Alien Trilogy where high color mode was showing correct colors, but the screen wasn't properly displayed.

Not having a lot of luck so far. I accidentally tried 5.53a, which the patch didn’t recognise, but then removed that and tried 6.53, which has the letter ‘w’ after it. Installing the patch was fine and I configured it within DOS, but all I get with BS1 is a grey screen. In Windows, I tried the SciTech Display Doctor utility and loaded the game up in DOS. Same issue in native DOS with the jumpy image and flickering mouse cursor. Had to add the ‘safevideo’ command first. I set the utility to boot up the SciTech Display Doctor 6.53 drivers and tested the game, which is quicker to do whilst troubleshooting instead of trying it under DOS. Same issue though. I even tried disabling some options to see if it would help, but no dice.

I’ve tried:

- Disable VBE 2.0 extensions
- Disable VBE 3.0 extensions
- Disable hardware stereo sync
- Disable linear framebuffer
- Disable 512x384 double scan

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 11 of 26, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie

I think I need to give up on this utility though. It’s causing nothing but problems when I switch to the SciTech Display Doctor graphics driver. 😕

Yesterday, I kept getting this blue screen of death whenever I booted up Windows…

The attachment IMG_3994.jpeg is no longer available

Had to revert to a previous registry point to fix it. Today, I get this if I try to boot up Windows or the DOS command prompt and nothing further happens…

The attachment IMG_4005.jpeg is no longer available

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 12 of 26, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie

After thinking about it, when I was experiencing the flickering cursor issue with the Windows version of the game, and I came across a solution by disabling Direct3D support, I’m wondering if being able to do that in DOS is possible somehow.

Does anyone know if disabling 3D support in DOS is doable?

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 13 of 26, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie

that... makes no sense.

Direct3D is a software API linked with hardware acceleration. What you are really asking is if it is possible to disable the card using hardware acceleration-- which it should not be doing in the first place without something pulling those strings. DOS knows nothing at all about such things, and unless you game knows how to do that innately (which I doubt very much).. well....

Reply 14 of 26, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
wierd_w wrote on 2025-01-07, 10:35:

that... makes no sense.

Direct3D is a software API linked with hardware acceleration. What you are really asking is if it is possible to disable the card using hardware acceleration-- which it should not be doing in the first place without something pulling those strings. DOS knows nothing at all about such things, and unless you game knows how to do that innately (which I doubt very much).. well....

Ah. Of course it is. 😅 Well, in that case, I’m all out of ideas on what’s causing the issue and what to try next.

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 15 of 26, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie

Looks like I still need to use UniVBE after all. Even if I can't get it to work to solve the weird flickering in Broken Sword, it looks like the DOS version of Discworld 2 is known for complaining there's no VESA driver.

I definitely need to avoid SciTech Display Doctor for Windows. So I need a DOS version that's going to work. I tried configuring a version again, but it doesn't detect any device or work. I can't seem to get FreeBB/AF to work either.

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 16 of 26, by Gmlb256

User metadata
Rank l33t
Rank
l33t
DustyShinigami wrote on 2025-01-10, 19:04:

I definitely need to avoid SciTech Display Doctor for Windows. So I need a DOS version that's going to work. I tried configuring a version again, but it doesn't detect any device or work. I can't seem to get FreeBB/AF to work either.

I should have mentioned the DOS version of SDD 6.53, the one with "d" after the numbers. The Windows version will put UNIVBE32.EXE into AUTOEXEC.BAT after installation which causes issues on officially unsupported hardware.

FreeBE/AF won't help you in anything, those are some drivers providing 2D acceleration in software supporting VBE/AF.

Reply 17 of 26, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
Gmlb256 wrote on 2025-01-10, 19:15:
DustyShinigami wrote on 2025-01-10, 19:04:

I definitely need to avoid SciTech Display Doctor for Windows. So I need a DOS version that's going to work. I tried configuring a version again, but it doesn't detect any device or work. I can't seem to get FreeBB/AF to work either.

I should have mentioned the DOS version of SDD 6.53, the one with "d" after the numbers. The Windows version will put UNIVBE32.EXE into AUTOEXEC.BAT after installation which causes issues on officially unsupported hardware.

FreeBE/AF won't help you in anything, those are some drivers providing 2D acceleration in software supporting VBE/AF.

Ahhh. Thanks for pointing that out; totally missed that. Looking at the Vogon's Driver page, I see it lists which ones are DOS only.

I guess that explains the issues encountered with Windows.

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 18 of 26, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie

Hmm. Just tried both DOS versions - SDD53a-d and SDD653-d - and both say no VGA device is detected. I'm not sure what I'm doing wrong, or not doing. I tried copying the driver file for 53a from the Modified folder I downloaded, and placed it in the utility's directory, but that doesn't work. If I'm meant to place it in the directory of a game, that's a bit tricky for Discworld 2 as the DOS version isn't installed. Won't install.

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 19 of 26, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie

Okay, I’d totally forgotten to include the Nvidia Patch again. So this time I installed the DOS version 6.53 and then put the patch in the directory and ran it, patched it, and it configured the VESA driver/device, but it doesn’t appear to work with Discworld 2. The installer still complains there’s no Super VGA device.

The attachment IMG_4017.jpeg is no longer available

From what I’ve read, 53a supports Discworld 2, but surely a later version would work fine as well…? I can’t use 53a because that also complains there’s no supported device. And I have no Nvidia patch for that. I’m guessing there isn’t one either?

If I’m having these problems with an old Riva TNT, I can’t see me having much luck with my GeForce 4 MX 440 if that’s newer. 😕

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II