VOGONS


First post, by wbc

User metadata
Rank Member
Rank
Member

It's finally released now 😀

..small cute TSR which fixes a couple of bugs and issues in S3 video BIOSes with built-in VBE 2.0 support

Small feature list:

  • primary stream FIFO fetch fix - fixes Quake and other apps bugs in 360-wide and text modes
  • new 320x[400/480] 8\15\16\32bpp modes (for some demos\intros)
  • VESA BIOS Extensions reported version override
  • Linear Frame Buffer control (default, off or force on)
  • Maximum video page count limit setting - useful for apps/games with broken double/triple-buffer support (i.e. fix Build Engine games HUD/weapon flicker or 30fps lock at expense of possible tearing)
  • VESA video memory size override
  • VESA Get/Set Palette (0x4F09) custom procedure - for "fake VBE 2.0" feature
  • "set display start" settings - override"wait for vertical retrace" flag
  • force RAMDAC CLUT width to 6 bit per channel setting (like in 6bitDAC, S3 Trio3D/Savage only)
  • VESA banked modes booster - probably the best thing - works like S3SPDUP but doesn't requires S3VBE20! (not on Savage)
  • Hi/TrueColor gamma correction option for S3 Trio3D/Savage. NOTE it does not allow gamma control itself, only allows to load gamma ramp inside application.
  • "fake VBE 2.0" feature - enables LFB and palette functions for VBE 1.2 video BIOSes (Trio64/V+/original ViRGE) - experimental, see this post for more info

...and other neat bits of code packed in less than 3kb COM file (and uses about 1 kbytes of conventional\UMB memory!)

DOWNLOAD: https://github.com/wbcbz7/S3VBEFIX/raw/master … se/S3VBEFIX.ZIP (latest version is 0.6.0)
GitHub repository (with source code): https://github.com/wbcbz7/S3VBEFIX/

Tested and works with S3 Trio64V2/DX-GX, ViRGE/DX-GX, Trio3D/2X, Savage4, may work on earlier chipsets (Trio64/V+/original ViRGE, and probably Vision as well)

Bug reports\ideas\other blah-blah are always welcome! 😀

Last edited by wbc on 2022-10-02, 20:13. Edited 7 times in total.

--wbcbz7

Reply 2 of 32, by keropi

User metadata
Rank l33t++
Rank
l33t++

awesome ! will try it and report later!
could all these features be imported to the bios? maybe as an extension or something?

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 3 of 32, by wbc

User metadata
Rank Member
Rank
Member
keropi wrote:

awesome ! will try it and report later!
could all these features be imported to the bios? maybe as an extension or something?

probably it will require a lot of code rewriting and size-crunching, since S3 BIOSes "internals" are not so investigated, and it can cause compatibility issues, so it will be a nearly impossible task.
TSR solution is more flexible and bug-free 😀

--wbcbz7

Reply 4 of 32, by keropi

User metadata
Rank l33t++
Rank
l33t++

I see, yeah it does not really worth the effort to embed into the vga bios if it is so complicated.
Tried the TSR today with my A55 and I can confirm that the Quake stripes on the right are gone, no matter what resolution one sets or how many times he cycles between various ones.
I could not detect what the "VESA banked modes booster" option did, I see no change in fps in 3dbench2/doom/pcpbench/quake (basically Phill's Bench package) , is there something else to try and see the benefits?

This along with the brightness-fixes gives new life to the S3 cards IMHO. They are fast and they are compatible (on my 233mmx speed a Trio3D/2X scores the same as the Riva128zx in DOS stuff) and I made the switch , using the same A55 that I had in my 440BX + voodoo2 setups 😊

Once again, excellent work wbc! 😎

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 5 of 32, by wbc

User metadata
Rank Member
Rank
Member
keropi wrote:
I see, yeah it does not really worth the effort to embed into the vga bios if it is so complicated. Tried the TSR today with my […]
Show full quote

I see, yeah it does not really worth the effort to embed into the vga bios if it is so complicated.
Tried the TSR today with my A55 and I can confirm that the Quake stripes on the right are gone, no matter what resolution one sets or how many times he cycles between various ones.
I could not detect what the "VESA banked modes booster" option did, I see no change in fps in 3dbench2/doom/pcpbench/quake (basically Phill's Bench package) , is there something else to try and see the benefits?

This along with the brightness-fixes gives new life to the S3 cards IMHO. They are fast and they are compatible (on my 233mmx speed a Trio3D/2X scores the same as the Riva128zx in DOS stuff) and I made the switch , using the same A55 that I had in my 440BX + voodoo2 setups 😊

Once again, excellent work wbc! 😎

Thanks! 😀

VESA banked mode booster works in those application that use VESA banked modes (pretty obviously 🤣), but AFAIK almost all VESA games and 90% of demos are able to use LFB instead if linear framebuffer is available (and do it on cards with VBE 2.0 capable BIOS) so you can't notice further boost in these apps.

--wbcbz7

Reply 6 of 32, by keropi

User metadata
Rank l33t++
Rank
l33t++

Really? I had no idea 3dbench2 and doom would use LFB by default - I expected a fpr rise in these two tbh
So basically this works in older games/programs ... or maybe newer ones like DN3D that you can select a non-VESA mode? I'll test this just for fun 😀

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 7 of 32, by wbc

User metadata
Rank Member
Rank
Member
keropi wrote:

Really? I had no idea 3dbench2 and doom would use LFB by default - I expected a fpr rise in these two tbh

3dbench2 DOES use LFB...for VGA mode 13h, since it is linear by design 🤣, and Doom uses Mode-X. AFAIK that booster can be also rewritten to work with mode 13h but it will not work with Mode-X stuff at all, so I have implemented it only for VESA banked modes.

keropi wrote:

So basically this works in older games/programs ... or maybe newer ones like DN3D that you can select a non-VESA mode? I'll test this just for fun 😀

challenge accepted 😁

--wbcbz7

Reply 8 of 32, by elianda

User metadata
Rank l33t
Rank
l33t

What additional modes does it support compared to S3VBE20 ?

Is there a message if it fails to work on a specific card?
Which cards do you expect it to work? Is it the same range of cards as S3VBE20 supports?

You write that the card must have already a VBE2 BIOS. Do you mean that it has to be the VBE2 BIOS in ROM or is it also ok to load S3VBE20 before?
Does it matter for the tool if the card is VLB or PCI?

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 9 of 32, by wbc

User metadata
Rank Member
Rank
Member
elianda wrote:

What additional modes does it support compared to S3VBE20 ?

At this moment it only adds additional 320x400\480 VESA modes if 320x200\240 are available.

elianda wrote:

Which cards do you expect it to work? Is it the same range of cards as S3VBE20 supports?
You write that the card must have already a VBE2 BIOS. Do you mean that it has to be the VBE2 BIOS in ROM or is it also ok to load S3VBE20 before?
Does it matter for the tool if the card is VLB or PCI?

Currently only cards with BIOS version 2.0 (with VBE 2.0 support bulit-in) are supported, support for other cards and S3VBE20 is, ehm, "unofficial" at this moment 😀
Since this tool is designed for Trio64V2/DX, ViRGE/DX and newer cards I can't say how it will work on i.e. Trio64V+ or older cards.

Last edited by wbc on 2016-06-10, 18:18. Edited 4 times in total.

--wbcbz7

Reply 12 of 32, by wbc

User metadata
Rank Member
Rank
Member
keropi wrote:

^ great, but what is the use of the new option? 😁

fixing palette corruption in Terra Nova and other games which can't work correctly in 8 bit per channel palette mode 😉

--wbcbz7

Reply 13 of 32, by keropi

User metadata
Rank l33t++
Rank
l33t++

awesome news then! This turns out to be a core component for S3 users , nice!

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 15 of 32, by wbc

User metadata
Rank Member
Rank
Member
ppgrainbow wrote:

I have one question to ask. Does S3VBEFIX on Virtual PC 2007 or Windows Virtual PC?

I'm curious to ask.

Since Virtual PC does a couple of bugs while emulating S3 Trio64 I doubt S3VBEFIX will work correctly, but you can give a try.

--wbcbz7

Reply 16 of 32, by ppgrainbow

User metadata
Rank Member
Rank
Member
wbc wrote:
ppgrainbow wrote:

I have one question to ask. Does S3VBEFIX on Virtual PC 2007 or Windows Virtual PC?

I'm curious to ask.

Since Virtual PC does a couple of bugs while emulating S3 Trio64 I doubt S3VBEFIX will work correctly, but you can give a try.

S3VBEFIX has no effect on VirtualPC 2007 even though it will work correctly on the S3 Trio64 emulated graphics card with VESA 2.0 support. Infact S3 Trio64 emulation support on VirtualPC is buggy and since Microsoft discontinued VirtualPC support, anymore bugs won't be addressed.

I'm wondering if any else has tested this fix when using the S3Trio64 compatible graphics card under PCem or not.

Reply 17 of 32, by wbc

User metadata
Rank Member
Rank
Member

another day, another version! 0.5.0

  • internal int 0x10 API added (your application can get some information about S3VBEFIX if it is installed)
  • current status display added - pretty nice feature because you can always get current status of TSR in readable form, i.e.
C:\DOS\VESAFIX>lh s3vbefix.com
S3 VBE fix TSR v.0.5.0 - by wbc\\bz7 13.o6.2o16 - installed

- VESA banked modes booster status: disabled
- RAMDAC CLUT width setting: normal
- VESA available memory size: 4096 KB
- 'set display start' flag status: normal

C:\DOS\VESAFIX>

unfortunaly .COM file doesn't fit now into 2kb boundary but because resident part is not changed too much it will still use less than 900 byes in memory (actually 832 bytes on my Trio3D/2X), so nevermind 😀

--wbcbz7

Reply 18 of 32, by wbc

User metadata
Rank Member
Rank
Member

another release: 0.5.1

List of new features:

  • check for S3 card presence

Changes since 0.5.0:

  • "primary stream fifo fetch fix" bug workaround for ViRGE(86c325), Trio64V+ and older chips - since CRTC register 0x90 is unavailable on these chips because of incomplete index decoding, CRTC reg 0x10 (vertical retrace start) was corrupted.

nothing unusual 😀

--wbcbz7