VOGONS


Reply 20 of 24, by ragefury32

User metadata
Rank Oldbie
Rank
Oldbie
weldum wrote on 2021-06-21, 17:48:

i have a gateway solo 5300 that has that savage ix gpu and, while metal looks like standard software mode, it performs way faster
so, my conclusion is that it works on that chip, but compatibility is way worse than it should.
that api was made specifically for savage 3d (excellent), savage4 (good), savage2000 (average) and savageix/mx (bad)

Well, the SavageMX/IX is Savage3D derived, so I have no idea what you mean when you stated in terms of compatibility for an API that’s used in less than 20 games.
The SavageIX/MX has always been fill limited in 3D applications (depending on the particular bus config, but almost all of my SavageIX8 based machines (the T21, the Vaio SR9GK and the Toshiba Portege 7200CTe) cannot break past 100MB/sec VRAM fill rate in Sisoft Sandra 2002). It starts taking a major performance hit once you go past, say, 640x480x16bpp in DX6/early DX7 apps. It was rather competitive versus the ATi Rage Pro LT but not so against the Rage128 Mobility (which is not nearly as power efficient and not found on the ultra-portables).

From what I remember the performance issues on the SavageIX were partly due to the thermal limit (<3w), part of it was the usual bus config (64 or 128 Bit SDR, often the former to reduce cost), and part of it as due to its lack of multitexturing (just like the Savage3D). As for compatibility…eh, take a look at some of the UT99 levels (like the shadows on DM-Crane or the Egyptian Hieroglyphs present in CUT-Horus) rendered on MeTal versus Direct3D (at least on the drivers IBM used for the SavageIX) - there were rendering issues.

That being said, the SavageIX were decent 2D cards for standard VGA/VESA games from the mid-90s.

Last edited by ragefury32 on 2021-06-27, 17:06. Edited 2 times in total.

Reply 21 of 24, by ragefury32

User metadata
Rank Oldbie
Rank
Oldbie
pentiumspeed wrote on 2021-06-21, 16:41:

T23 has breaking off inductors on the motherboard. I fixed mine when I got it for free by soldering them back on, also some inductor also partially solder fractured.

Cheers,

Well, at least the T23 doesn’t have the blink-of-death power controller issue of the T20-22 series (also impacts the Vaio PCG-SR series). Those are far more annoying to fix.

Reply 22 of 24, by attachedy

User metadata
Rank Newbie
Rank
Newbie
ragefury32 wrote on 2020-11-05, 02:11:
dj_pirtu wrote on 2020-11-04, 11:21:

Those drivers I tried first. Got myself a S3Savage4 16MB PCI-card some time ago. S3MeTal works on that card with no problems. I'm starting to think that mobile-versions of Savage just don't support MeTal.

Nope, it’s definitely working on my T21.

EB0BDD65-CFEC-47D3-97B6-C217DBD1F3FC.jpeg

It is working on my Toshiba Satellite Pro 4340 as well (also using a Savage/IX). However, it looks like software rendering, an effect that has been mentioned above on a gateway solo 5300. Is it the same for you? Your screenshot suggests that but I'm not quite sure.

Reply 23 of 24, by Tuxality

User metadata
Rank Newbie
Rank
Newbie

I know that this is quite an old topic, I hope moderators do not mind. 😉

It seems that there is a lot of confusion regarding S3 MeTaL API support on mobile S3 Savage/IX and MX variants which are derived from the S3 Savage 3D in terms of 3D rendering block. I've seen a lot of screenshots and some videos with software renderer dubbed with "S3 MeTaL API on S3 Savage/IX", which is plain wrong. I don't know why leileilol didn't started her crusade regarding Unreal renderer support and SoftDrv fallback yet, I'll do the honor then. 😉

So, does the S3 Savage/IX support MeTaL API? Yes, although not in any of the stock drivers, so all posts regarding "running" Unreal with S3 MeTaL API on Savage/IX are sadly wrong especially that MeTaL renderer works only in fullscreen mode - make it windowed and SoftDrv will take the lead.

The METAL.DLL library is supposed to support Savage/IX as well as Savage/MX variant in versions 1.0.2.5 and 2.0.3.0. Sadly, due to the issue with board detection it does not work in stock library. When mtlOpen is called PCI bus is searched for the supported S3D board, by default the autodetection feature works only for the S3 Savage/MX w/ MV board variant with device ID 0x8c10 and other variants will simply not work and result in no S3D supported board being found / initialization failure.

There are four variants of the mobile S3 Savage chips:

  • S3 Savage/MX w/MV, device ID 0x8c10, working on stock METAL.DLL
  • S3 Savage/MX, device ID 0x8c11, not working on stock METAL.DLL
  • S3 Savage/IX w/MV, device ID 0x8c12, not working on stock METAL.DLL
  • S3 Savage/IX, device ID 0x8c13, not working on stock METAL.DLL

In order to make it working on all variants I've needed to create for each mobile variant separate, patched METAL.DLL library. You can download patched libraries from below link, select one corresponding to your device ID then drop-in to the C:\Windows directory overwriting existing one:

http://tuxality.net/projects/s3savageix/dl/s3 … ix_patch_a1.zip

Archive contains both METAL.DLL 1.0.2.5 and 2.0.3.0 library versions patched for all mobile S3 Savage variants listed above.

Please be aware that S3 MeTaL API works on Windows 9x/ME only, there is no support for NT variants as there is direct hardware access done as well as it depends on the VxD driver implementation. The 0x8c10 device library variant in the archive is of course the vanilla METAL.DLL library, posted just in case. There is most likely a possibility to create one universally patched METAL.DLL file as there is some room in assembly to change PCI devices detection routine, but I'll leave this for further project.

I've also created a simple tool named s3metalinfo that allows to check if S3 MeTaL API is supported on your system. This is a better tool in my opinion than using Unreal for testing as it caused a lot of misunderstanding in vintage gaming community. It can be found here:

http://tuxality.net/projects/s3savageix/dl/s3 … etalinfo_a1.zip

If your board is supported, you should see "S3 MeTaL API is supported on this board" with detailed information about your device. However, if it doesn't work it'll say "Failed to acquire S3 MeTaL interface" with reason "No supported S3D board found". Unreal in such case will result in SoftDrv i.e. software redering fallback in both fullscreen and windowed mode. To get this working you'll need supported S3 Savage 3D, Savage 4, Savage/IX, Savage/MX or Savage 2000 board and of course patched METAL.DLL in case of the mobile variants. 😀

I've attached screenshot from Unreal running for the first time with S3 MeTaL API on S3 Savage/IX w/MV (8c12) in 1024x768x16 resolution and for comparison the same screenshot with software renderer fallback. More screenshots can be found on my webpage if anyone is interested:

http://tuxality.net/projects/s3savageix

While S3 MeTaL API looks really good on the S3 Savage/IX, it sadly does have its own issues. First of all it seems to be capped to 30FPS no matter what, this is done somehow internally in the drivers and I didn't found any solution for this yet. And no, S3Tweak won't help you there. Another issue most likely related to the framerate cap is that audio stutters pretty badly and there is quite a lot of input lag. I strongly suggest to tweak Unreal.ini in order to get best possible experience on S3 Savage/IX chips i.e. to reduce input lag.

I hope this clears up all the misunderstanding regarding S3 MeTaL API support on S3 Savage/IX as well as S3 Savage/MX.

Attachments

  • unreal_softdrv_2.png
    Filename
    unreal_softdrv_2.png
    File size
    753.92 KiB
    Views
    601 views
    File comment
    Unreal Gold with software renderer
    File license
    CC-BY-4.0
  • unreal_metal_2.png
    Filename
    unreal_metal_2.png
    File size
    937.01 KiB
    Views
    601 views
    File comment
    Unreal Gold with S3 MeTaL API renderer on S3 Savage/IX w/MV
    File license
    CC-BY-4.0