VOGONS


How do I flash VBIOS on an S3 card?

Topic actions

First post, by jolurove

User metadata
Rank Newbie
Rank
Newbie

So I have some S3 cards, namely a Virge DX, Trio64 V2/DX and a 3D/2X, and all of them have the infamous brightness problem. I found a couple of threads in here and other forums with patched BIOS and fixes, but I can't seem to find any flashing software. Can you even flash one of these through software or do I need one of those externeal flashing units?

Thanks a lot! 😁

Reply 1 of 20, by lazibayer

User metadata
Rank Oldbie
Rank
Oldbie

If vbios is eeprom and socketed: we can try many ways to flash it.
If vbios is eprom and socketed: use flashing unit or buy a new eprom/eeprom
If vbios is otprom and socketed: throw it away and buy a new eprom/eeprom
If vbios is eeprom and soldered: we can try limited ways to flash it, unless you are willing to unsolder it
If vbios is eprom and soldered: does it really exist?
If vbios is otprom and soldered: no can do, unless you are willing to unsolder it

PS: if your goal is not flashing vbios, but rather, solving the brightness issue, you can also try Shadow Video BIOS Loader, debug trick, or remove the vbios chip on the card and embed vbios into your main bios. The last one is risky and inconvenient, obviously.

Reply 2 of 20, by jolurove

User metadata
Rank Newbie
Rank
Newbie

Actually they're all socketed, but I don't know if they're EPROM or EEPROM, how do I tell one apart from the other?

About the debug trick, it actually only worked wit the 3D/2X, don't know if I'm doing something wrong.

Thanks for replying!

Reply 3 of 20, by BloodyCactus

User metadata
Rank Oldbie
Rank
Oldbie
jolurove wrote:

Actually they're all socketed, but I don't know if they're EPROM or EEPROM, how do I tell one apart from the other?

part numbers on the chips tell you what kind it is.

--/\-[ Stu : Bloody Cactus :: [ https://bloodycactus.com :: http://kråketær.com ]-/\--

Reply 4 of 20, by jolurove

User metadata
Rank Newbie
Rank
Newbie

Well. I'm finnaly home and got to have a look.

Two of them have EPROM and one has a EEPROM chip (Virge DX PCI), all of them socketed as stated before. So I guess I have to buy an external flasher to flah two of them and what are the other options you mentioned before for the EEPROM chip?

Reply 5 of 20, by lazibayer

User metadata
Rank Oldbie
Rank
Oldbie
jolurove wrote:

Well. I'm finnaly home and got to have a look.

Two of them have EPROM and one has a EEPROM chip (Virge DX PCI), all of them socketed as stated before. So I guess I have to buy an external flasher to flah two of them and what are the other options you mentioned before for the EEPROM chip?

You may just flash the eeprom on the flasher since you are getting one anyway.
I am not sure if S3 has officially released flasher for virge cards. If you card came from some big brand like compaq you may search if they have released one.
Alternatively you may try uniflash but I don't know if it works with S3 virge or not.
You can also use intel/3com/realtek ethernet cards as flasher, or do a hot swap on a motherboard. You need to figure out the programming voltage of the chip. Again, these methods are much more tedious and risky than using an actual flasher.

Reply 6 of 20, by vlask

User metadata
Rank Member
Rank
Member

Back in 1998 i found some tool, that converted bios to exe file - then we set it run in autoexec.bat and problem was solved without reflashing anything. Mine Savage 3D card didnt supported reflash in pc anyway. It was only way how overcome this....But won't remember name of tool and don't know if it works on all cards.

These exe versions of bios files are included for example in Fachmans drivers for S3 Savage 3D, but don't know what he used to create executable version of bios....

This is in info file....

a) In the subdirectory EXE you can find the EXE form of latest bioses(for adding to autoexec.bat - see instruction).

Drivers are for example here - check bios/exe
ftp://alag3.mfa.kfki.hu/drivers/sVGA/S3/Savag … 3D/s3fach41.exe

So this might work on other cards too, just find someone name of tool for creating exe bios files 😀

Not only mine graphics cards collection at http://www.vgamuseum.info

Reply 7 of 20, by jolurove

User metadata
Rank Newbie
Rank
Newbie
vlask wrote:

Back in 1998 i found some tool, that converted bios to exe file - then we set it run in autoexec.bat and problem was solved without reflashing anything. Mine Savage 3D card didnt supported reflash in pc anyway. It was only way how overcome this....But won't remember name of tool and don't know if it works on all cards.

Awesome info! I'll look in to it and will check back! 😁

Thank you very much!

Reply 8 of 20, by jolurove

User metadata
Rank Newbie
Rank
Newbie
lazibayer wrote:
You may just flash the eeprom on the flasher since you are getting one anyway. I am not sure if S3 has officially released flash […]
Show full quote

You may just flash the eeprom on the flasher since you are getting one anyway.
I am not sure if S3 has officially released flasher for virge cards. If you card came from some big brand like compaq you may search if they have released one.
Alternatively you may try uniflash but I don't know if it works with S3 virge or not.
You can also use intel/3com/realtek ethernet cards as flasher, or do a hot swap on a motherboard. You need to figure out the programming voltage of the chip. Again, these methods are much more tedious and risky than using an actual flasher.

I'm very intrigued by being able to flash a rom using an ethernet card as a flasher unit, I habe a bunch of those in a drawer, I'll definetly do a little research about it.
All of my cards are actually generic, so no documentation online other than the available at the S3 site and whatever I can find in the forums online.

I'm learning a lot here.

Thanks a lot and have a nice day 😀

Reply 9 of 20, by lazibayer

User metadata
Rank Oldbie
Rank
Oldbie
jolurove wrote:
I'm very intrigued by being able to flash a rom using an ethernet card as a flasher unit, I habe a bunch of those in a drawer, I […]
Show full quote

I'm very intrigued by being able to flash a rom using an ethernet card as a flasher unit, I habe a bunch of those in a drawer, I'll definetly do a little research about it.
All of my cards are actually generic, so no documentation online other than the available at the S3 site and whatever I can find in the forums online.

I'm learning a lot here.

Thanks a lot and have a nice day 😀

You are welcome! Flashrom is a trusted generic flash utility and it has listed all the cards and chips it can support. Some old flash chips need 12V to reprogram their contents but most network cards can only supply 5V, so you might have to hard wire 12V to the chip's VPP pin.

Reply 11 of 20, by Nemo1985

User metadata
Rank Oldbie
Rank
Oldbie

Sorry for the necroposting,

I'm trying to identify the offsets in the bios of s3 cards (virge, virge dx and trio 64v+) which controls the memory and core frequency (to my knowledge they are syncro).

According to MCLK there are 3 settings to set the frequency clock, despite of that I can't find the right offsets in the bios:
xF8N38f.png

I also found the trio64v+ full documentation (http://vgamuseum.info/index.php/cards/item/do … 2086633b5908851) section 9-1 explain how the frequency is selected (pdf pages 74-75-76)

In attachments there is also my bios collection, it contains bios from my virge dx cards, one with 70 mhz with the infamous bright bug (S3 AGP Cards (and possibly others) Too Bright), the second is the bios version at 66 mhz coming from another card, the others 2 are bios I donwloaded and according to vogoners the most recent versions which have 50 mhz for memory and core).

Thank you in advance for any help.

Attachments

  • Filename
    S3 Virge DX.7z
    File size
    25.97 KiB
    Downloads
    180 downloads
    File comment
    Virge DX bios collection
    File license
    Public domain

Reply 12 of 20, by Nemo1985

User metadata
Rank Oldbie
Rank
Oldbie

I'm hoping someone will be available to help me, I add the bios of 2 Trio 3d/2x with in different version and frequency:
S3Trio3d2xG: with brightness bug, V2.0C.0983 frequency: 83 for both core and memory
S3Trio3d2xB without brightness bug, Version 2.0C.10A frequency: 100 for both core and memory

Attachments

  • Filename
    S3 Trio 3d-x2 bios.7z
    File size
    18.85 KiB
    Downloads
    93 downloads
    File license
    Fair use/fair dealing exception

Reply 13 of 20, by wbc

User metadata
Rank Member
Rank
Member
Nemo1985 wrote on 2020-01-15, 08:38:

I'm trying to identify the offsets in the bios of s3 cards (virge, virge dx and trio 64v+) which controls the memory and core frequency (to my knowledge they are syncro).

AFAIR, the 2.01.07 ViRGE/DX video BIOS offers those useful data offsets:

0x45       - BIOS power up string (max. 96 characters)
0xA5 - BIOS date (mm/dd/yyyy)
0xAD - another BIOS date (unknown why there're two different date fields?)
0xC2 - MCLK value (SC11, then SC10, appears to be big endian!)
0xCC0 - VESA oem string (max. 30 chars)
0xCDF - VESA vendor string (max. 16 chars)
0xCF0 - VESA adapter name string (max. 13 chars)
0xCFE - VESA adapter revision string (max. 5 chars)

0x6040 - 8x8 font
0x6840 - unknown, appears to be a 8x14 font patch (this version doesn't have 8x14 font built in due to ROM size constraits, so 8x14 font is generated by using 8x16 one then patching certain characters on the fly)
0x696С - 8x16 font
0x796С - 9x16 alternate font table
0x7AAF - 8x14 alternate font table

0x7B16 - free space - 1257 bytes
0x7FFF - checksum: byte(256 - (sum across all bytes of image except this))

also, you can try this little thingy (in attach) to calculate new MCLK value from M/N/K coefs. Keep in mind that MCLK value stored in the BIOS in big endian format - high byte (SC11) first, then low byte (SC10) follows.
Hope this would help 😀

Attachments

  • Filename
    MCLKCONV.zip
    File size
    43.01 KiB
    Downloads
    136 downloads
    File license
    Public domain

--wbcbz7

Reply 14 of 20, by Nemo1985

User metadata
Rank Oldbie
Rank
Oldbie

Thank you so much! This really helps me, now I will probably do some dumb questions:
I'm using HxD, i'm not very confident with hex editors

Those are the values starting from 000000C0:

2.01.07:
D0 09 28 41 47 25 04 15 15 02 10 00 80 FE 08 04

2.01.16:
00 00 00 09 02 80 D0 09 04 15 15 02 10 00 80 FE

66mhz no brightness bug (3D-Artist PT70 Video BIOS. Version 2.40):
00 00 00 09 02 80 D0 09 04 15 15 0A 10 00 00 FE

70 mhz with brightness bug (Version 1.01.03):
D0 09 25 22 48 42 04 15 15 02 10 10 00 0E 00 06

If I change the the 28 value to 25, I should be able to get the new frequency?
I suppose I will need to change the checksum, how can I calculate the new checksum?

I've also used the program you provided to get the 70mhz the m n r combination is: 57 1 2

Thanks for you patience

Last edited by Nemo1985 on 2020-01-24, 07:46. Edited 1 time in total.

Reply 16 of 20, by Nemo1985

User metadata
Rank Oldbie
Rank
Oldbie

So I have been able to partially solve the problem.
I copied and pasted the values from c2 to c5 from my 70mhz bios to the 2.01.07, corrected the checksum thanks to HxD and everything seems fine, so far.
Next I need to understand how to translate those bin number to the hex numbers I need.

Some notes:
Bios 2.01.16 has the brightness bug and the stock frequency is reduced to 45mhz, pretty useless if you ask me.

I probably bad dumped the bios of Aopen PT70 v2.40, is there anyone with correct dump who is willing to upload it there please? The other hypotesis is that it has some icompatibilities with the slot1 mb I'm using right now.

Reply 17 of 20, by Nemo1985

User metadata
Rank Oldbie
Rank
Oldbie

Despite I didn't receive any further help, I kept going with the tests, I noticed that the bios of TRIO64v+ cards can be swapped with the virge, without any issue, I also noticed that Trio64v+ cards can have different frequencies despite the bios being the very same (I have one model at 60mhz with edo 2 cycles and another with 50mhz with 1 edo cycle).

Still looking for help anyway 😀

Reply 18 of 20, by RichB93

User metadata
Rank Member
Rank
Member

Hi all,

Many thanks for the information and tools here; I was lucky enough to find a ViRGE DX with 35ns RAM on eBay and wanted to hard-mod the BIOS to take advantage of the RAM speed.

The card amazingly had a 72MHz speed at stock, but using the MCLK conversion tool above and HxD, I have modified the BIOS to run at 83MHz. I did overclock the card to 85MHz and it did work without artifacting, but it still somehow seemed slower. It also runs in 1-cycle EDO mode.

I've attached the BIOSes to this post; they're apparently version 1.01.03. No idea if this version has any brightness bug (I'm not sure what that is!).

The chip finally gets hot enough to necessitate a heatsink too, so I've attached a 28mm heatsink with some thermal tape... It's no longer a deccelerator!

Attachments

  • Filename
    S3_Virge_DX_83MHz.zip
    File size
    17.08 KiB
    Downloads
    117 downloads
    File comment
    72MHz BIOS modified to 83MHz, with fixed checksum.
    File license
    Fair use/fair dealing exception
  • Filename
    S3_Virge_DX_72MHz_STOCK.zip
    File size
    17.09 KiB
    Downloads
    112 downloads
    File comment
    Stock bios from my ExpertColor branded card. 72MHz.
    File license
    Fair use/fair dealing exception

Reply 19 of 20, by Nemo1985

User metadata
Rank Oldbie
Rank
Oldbie

Unlucky, according to my archive the 1.01.03 has the brightness bug (it means that the black color become grey and it's noticeable on lcds).
Also can you please explain to me how did you find the right values for the clock of memory and cores and translated them in hxd?
Thanks