VOGONS


S3 ViRGE BIOS RAM timings

Topic actions

Reply 40 of 48, by aVd

User metadata
Rank Member
Rank
Member

During most of the time these S3 video cards are used in their default 2D mode, even while used in windows OS (3.xx, 9x, ME, XP?). So, my suggestion is, that there's more sense for 2D core frequency to be lower (if possible to be set separately with "the first bytes pair"), so the video chip does not generate unnecessary heat in its default 2D mode. I really have to test this with 2D only tests.

SvarDOS fan :: artificial "intelligence" bots - not a fan at all :: say NO to systemd :: is freeware a lie, when human freedom is a fundamental lie? :: f00ck €u!

Reply 41 of 48, by Nemo1985

User metadata
Rank Oldbie
Rank
Oldbie

I do agree with you that all the calls in windows are made in 2d (directdraw or gdi). But we have a 2d freq that are never used here.
About the bios, yes they used eprom, in fact I changed the bios chip with a W27E257.
I can confirm that in both dos and windows the frequency of the 81mhz bios is: 81,43 mhz (checked in dos with mclk and in windows 98 with powerstrip).
I tested your 45mhz (45.10) version and again it's confirmed to be so in both dos and windows.
And here is the surprise the so called 66mhz version was indeed 55mhz in both dos and windows!

Also I checked the memory of my card they are Mosel Vitelic V53C832HQ40 (max freq should be 83mhz) DATECODE: 9823F

Reply 42 of 48, by aVd

User metadata
Rank Member
Rank
Member

Thanks for the feedback!

The 45MHz BIOS (the one with doubled 0x3D43 bytes) is from unknown card. My S3 ViRGE/GX BIOS comes with factory set real 75MHz frequency. As for the others BIOSes, I trust the TR1 test results with the equal FPS given at one and the same saved and reloaded point (scene). MCLK for DOS also reports same 75MHz frequencies for mine and for yours two (named "81MHz" and "66MHz") BIOSes... Except, if your suggestion is true and these second bytes pairs are for S3D API frequencies (TR1 executable for ViRGE is using S3D API). Well, I'll have to install win 98SE to see what is the situation with all those 2.01.16 BIOSes there with DirectX5 and possibly 2D rendering.

Now I'm totally confused 🙁 In any case, I will change both bytes pairs to same value for maximum usable frequency, if we can't figure out which bytes pair sets what mode (2D, S3D, DirecX 3D, something else?) frequency.

EDIT: Spelling errors corrected.

Last edited by aVd on 2026-05-14, 20:22. Edited 2 times in total.

SvarDOS fan :: artificial "intelligence" bots - not a fan at all :: say NO to systemd :: is freeware a lie, when human freedom is a fundamental lie? :: f00ck €u!

Reply 43 of 48, by Nemo1985

User metadata
Rank Oldbie
Rank
Oldbie

What puzzles me is... how is it possible that the same bios gives us different frequencies? That's complete madness.
This is a picture of my card, could it be that our cards use quartz with different clocks? Mine is 14.318

The attachment photo_2026-05-14_21-42-21.jpg is no longer available

I agree with your idea of set the value for the maximum frequency, it's not that the old virge needs to be throttled down or consume a huge amount of energy. HAving the same value will grant more consistency.

Reply 44 of 48, by aVd

User metadata
Rank Member
Rank
Member

My S3 ViRGE/GX card is identical to this one and has small passive crystal oscillator marked as H143HAE7. Probably this also means 14.31818MHz.

My original idea was to find a stock higher clocked 2.01.16 BIOS (more than 75MHz reported by MCLK) with possibly more relaxed VRAM timings, so I could try to achieve more than ~80MHz overclock frequency on my card. The "bright bug" is easy fix. I've noticed a specific bytes pattern in the S3 ViRGE/GX(/DX) BIOSes (74 03 80 CC 20, if I'm not mistaken), which contains the byte that needs to be changed (change byte 0x20 to 0x00) in order to fix the brightness issue.

SvarDOS fan :: artificial "intelligence" bots - not a fan at all :: say NO to systemd :: is freeware a lie, when human freedom is a fundamental lie? :: f00ck €u!

Reply 45 of 48, by aVd

User metadata
Rank Member
Rank
Member
Nemo1985 wrote on 2026-05-14, 19:45:

What puzzles me is... how is it possible that the same bios gives us different frequencies? That's complete madness.

I'm amazed and confused too. But let's sum up what we have from our DOS and windows tests.

In pure DOS by using MCLK and Tomb Rider 1 FPS counter I got same results for my native S3 ViRGE/GX BIOS and yours two "2.01.16P bbug 66mhz.bin" and "2.01.16P bbug 81mhz.bin" BIOSes. All these three BIOSes are reported in DOS by "MCLK /0" as 75MHz (also with matching M, N, K values) and they give me exactly the same FPS counts with loaded one and the same save-point (scene) in TR1. So, I'm considering these three BIOSes as 75MHz.

For the "2.01.16.M45-66Mh-Buggy.bin" BIOS from the unknown ViRGE/GX card MCLK reports 66MHz and TR1 FPS results are slightly lower (1-2 FPS lower) compared to 75MHz BIOSes, so I'm considering this one as 66MHz BIOS.

And the "2.01.16-45MHz-Buggy.bin" BIOS also from some unknown ViRGE/GX card (the one with the two matching frequency bytes pairs) gave me lowest TR1 FPS result - about 10-11 FPS lower compared to compared to 75MHz BIOSes (it is even worse than the result with my S3 ViRGE/325 50MHz). MCLK reports 45MHz, so I'm considering this one as 45MHz BIOS.

And this leads me to conclusion, that in pure DOS environment MCLK's reports are given according to "the second frequency bytes pair" and that the DOS game Tomb Rider 1 S3D API also uses the frequencies set by "the second frequency bytes pair".

But... By your brief feedback for the windows tests, I understood, that only "2.01.16-45MHz-Buggy.bin" BIOS (the one with the two matching frequency bytes pairs) is reported by MCLK (used in CMD.EXE command shell, I guess) and PowerStrip as 45MHz - just like it is in my pure DOS tests with MCLK. And all other BIOSes are reported like "the first frequency bytes pair" is read. So, this leads me to next questions:

- Are you really using "MCLK /0" in windows command shell (CMD.EXE) to check the frequency set by the BIOS? If you're using MCLK in pure DOS after the BIOS dump was loaded in shadow RAM and just before starting windows, and you got different frequency reports from my DOS MCLK tests, this is totally unexpected and really weird.
- Do you know if PowerStrip reads frequency BIOS settings from the card's ROM chip or from its shadow RAM copy?

If we can not investigate further the confusion related to the BIOSes with the different frequency bytes pairs, I'll continue to use matching frequency bytes pair as universal solution when patching these BIOSes for overclock. After all, I don't have monetized youtube channel to make a regular weekly retro hardware video based on "ai reserch" 😁

EDIT: Spelling errors corrected.

Last edited by aVd on 2026-05-15, 07:02. Edited 2 times in total.

SvarDOS fan :: artificial "intelligence" bots - not a fan at all :: say NO to systemd :: is freeware a lie, when human freedom is a fundamental lie? :: f00ck €u!

Reply 46 of 48, by Nemo1985

User metadata
Rank Oldbie
Rank
Oldbie

It's to avoid this issue that I always burned the bios into the eeprom instead of using rambios1.5, to avoid any potential confusion, though I don't know if powerstrip reads the shadow memory or the bios directly.
Here is how I tested the different bioses: Booted on dos 7.1, not the prompt, used mclk to check the freq. Soft reset, in the boot menu I went into windows and loaded powerstrip to check the frequency in that environment.

Reply 47 of 48, by aVd

User metadata
Rank Member
Rank
Member

I'm also using m$-DOS 7.10 set to not start windows 98SE (all windows related directories are deleted). You can replicate my results in DOS 7.10 with "MCLK /0" without any real BIOS reflashing (using dedicated (E)EPROM programmer consumes more time, it wears the EEPROM chip and it's way harder, than using RAMBIOS for quick tests). There's no way for us to get such a differences in MCLK reports in the very same DOS environment. As for PowerStrip in windows, I have no idea how the BIOS frequency settings are interpreted by this program.

Now I'm wondering, if it makes sense to waste more time in installing windows 98SE just to check what the PowerStrip will show for this 2.01.16 ViRGE/GX BIOS collection. Do we really need to know which frequency byte pair is more important for 3D acceleration?

P.S. If I find some new motivation, later today I can try something with the byte at address 0x3c, which is my main suspect for VRAM timings.

SvarDOS fan :: artificial "intelligence" bots - not a fan at all :: say NO to systemd :: is freeware a lie, when human freedom is a fundamental lie? :: f00ck €u!

Reply 48 of 48, by aVd

User metadata
Rank Member
Rank
Member

Just finished testing all five 2.01.16 BIOSes in DOS with "MCLK /2", "MCLK /3" and "MCLK /4" and regardless of fact, that two of them shows different core frequencies (45 and 66 instead of 75MHz), all five BIOSes have one and the same memory timings set. "MCLK /1" does not report anything, since it is for FP or EDO RAM, not for SD or SGRAM. So, no luck in finding some bytes for setting the VRAM timings. I think I'm done with all these ViRGE/GX BIOS experiments.

P.S. Modified my S3 ViRGE/GX card to it's OC limits of 81MHz. Frequency byte pairs "2C 41 3D 41" changed to "42 41 42 41" (M = 66 , N = 1, K = 2 -> 81.1353 MHz -> 0x4241). Here is the 81MHz BIOS v.2.01.16 with "bright bug" fixed:

The attachment Jaton S3 ViRGE-GX-ver.2.01.16J-MOD-81MHz.zip is no longer available

SvarDOS fan :: artificial "intelligence" bots - not a fan at all :: say NO to systemd :: is freeware a lie, when human freedom is a fundamental lie? :: f00ck €u!