First post, by CkRtech
- Rank
- Oldbie
Just for the fun of it, I decided to mess with a Diamond Viper VLB (E4) card I have had kicking around for a few years. I threw it in my 486DX2 66 MHz build. I know that the Viper's DOS performance is terrible because it uses the built-in OAK chip for basic VGA work.
However...
If I could kick things over to the Weitek Power 9000 chip normally used for acceleration in Windows, perhaps I could get better performance in several DOS applications. I elected to use Fastdoom and Duke3D for testing.
This wasn't just a univbe operation. You also have to run either Diamond's own Viper VESA utility to jump the first gap or a third party utility like Vprvesa.
After wrestling univbe versions with this card, I hit upon version 6.5. It identifies the card and adds various modes without going bonkers.
Unfortunately, the main mode I wanted - 320x200 - was not available. 320x400 was.
OK. Forget Univbe.
Now I have only really programmed in Mode 13h, and that was in the late 90s. I am unfamiliar with VGA programming in general - to say nothing of VESA modes. I am not sure if scan doubling is available on the P9000 the way it is on something like the Oak chip, but I did manage to create a 320x200 mode using vprvesa's setmode utility and entering the following information to try to time out 640x400:
This does create an image on my test bench monitor (LCD). I centered it, and it looks like this:
After saving the mode and loading the TSR, 320x200 VESA was now available... window boxed... on my monitor. Fastdoom and Duke3d treat it as normal.
So I ran Fastdoom VBR with the status bar at the bottom, benchmarked with demo 3, and hit 35.098 fps. I mean it ran REALLY well versus the Oak using Mode 13h on Fastdoom @ 22.847 fps.
Fastdoom VBD (triple buffered) clocked even higher as it managed 42.285 fps but had glitches. This mode is designed for LFB (Triple Buffered), and this 320x200 hack is basically VBE1.2 w/o LFB.
Hopping over to Duke3D and running it at this hacked up VESA 320x200 Mode also showcased a noticeable performance boost. The second demo where Duke runs through this enclosed area normally tops out at 13-16 fps in the short stretch on the OAK, but averaged 18-25 fps and peaked @ 30+ fps several times in VESA mode.
The rooftop of a new game averages 13 fps on the Oak. For VESA, it was 19-20 fps.
Dropping down into the ground area outside has a rather choppy 13-15 fps on the Oak but 22-25 fps on the VESA.
If I entered a smaller, contained area, the Oak topped out at 17 fps while the VESA hit 30-32 fps.
So I often fire up univbe to use VESA 320x200 on the Cirrus Logic, S3, or Trident VLB cards all the time. The resolution is there from the start, and it doubles in size to fit the monitor as usual.
The last couple of days messing with VESA utilities for this Viper VLB have been an adventure. It would be nice to scan double this hacked 320x200 mode to improve DOS gaming for people that own the card. I am not sure if I can do that via VIPER.INI or need to use something else entirely... assuming it is possible at all. Of course, maybe there is some other utility that can get it done.
Anyway - I am interested in feedback or recommendations.