VOGONS


DirectX/hardware downgrade

Topic actions

First post, by buckeye

User metadata
Rank Oldbie
Rank
Oldbie

When running games like Rogue Squadron win98SE, the framerates are not great so I was thinking maybe using "overkill" parts like a P3 450 and Geforce3 might be the problem or perhaps directx 9. Should I roll back to directx 7 or scale back my hardware to a P2 233 & Geforce2 Ultra or both? Mainly playing games in the 2000 and older era.

Asus P5N-E Intel Core 2 Duo 3.33ghz. 4GB DDR2 Geforce 470 1GB SB X-Fi Titanium 650W XP SP3
Intel SE440BX P3 450 256MB 80GB SSD Radeon 7200 64mb SB 32pnp 350W 98SE
MSI x570 Gaming Pro Carbon Ryzen 3700x 32GB DDR4 Zotac RTX 3070 8GB WD Black 1TB 850W

Reply 1 of 34, by FFXIhealer

User metadata
Rank Oldbie
Rank
Oldbie

Wait...your framerates are slow...so you want to get SLOWER hardware? Really? If anything, the GeForce3 is busy waiting for a 450MHz processor to catch up. My Riva TNT2 card has to wait on my 350MHz Pentium II to catch up...as does my Voodoo2 PCI card.

292dps.png
3smzsb.png
0fvil8.png
lhbar1.png

Reply 2 of 34, by nekurahoka

User metadata
Rank Member
Rank
Member

Rogue squadron should do wonderfully on that hardware. Downgrading directX is not a bad idea, but I'd bet there is another issue causing this problem. Overkill isn't really an issue in windows games until the newer hardware or drivers stop supporting features needed by older games. Do you have issues in other games?

Dell Dimension XPS R400, 512MB SDRAM, Voodoo3 2000 AGP, Turtle Beach Montego, ESS Audiodrive 1869f ISA, Dreamblaster Synth S1
Dell GH192, P4 3.4 (Northwood), 4GB Dual Channel DDR, ATI Radeon x1650PRO 512MB, Audigy 2ZS, Alacritech 2000 Network Accelerator

Reply 4 of 34, by PhilsComputerLab

User metadata
Rank l33t++
Rank
l33t++

Ace mentioned this game to me recently. He had success using a fast CPU with that game.

YouTube, Facebook, Website

Reply 5 of 34, by buckeye

User metadata
Rank Oldbie
Rank
Oldbie

I know it doesn't make sense but figured it'd be like with DOS where period correct hardware is the way to go. So the majority says hardware is fine, so maybe roll back directX to say....7 or 8? What's the best way to go about doing that?

Asus P5N-E Intel Core 2 Duo 3.33ghz. 4GB DDR2 Geforce 470 1GB SB X-Fi Titanium 650W XP SP3
Intel SE440BX P3 450 256MB 80GB SSD Radeon 7200 64mb SB 32pnp 350W 98SE
MSI x570 Gaming Pro Carbon Ryzen 3700x 32GB DDR4 Zotac RTX 3070 8GB WD Black 1TB 850W

Reply 6 of 34, by FFXIhealer

User metadata
Rank Oldbie
Rank
Oldbie
buckeye wrote:

I know it doesn't make sense but figured it'd be like with DOS where period correct hardware is the way to go. So the majority says hardware is fine, so maybe roll back directX to say....7 or 8? What's the best way to go about doing that?

I would say, if anything, that your 450Mhz Pentium III is actually holding your graphics card back a bit. A faster one would be better to pick up framerates.

Yes, I know my own build is using a 350MHz Pentium II and I ought to upgrade to a 600MHz Pentium III to get the same increase in performance...but I have nostalgia for using an 18-year-old processor that still works to this day. This is my original Pentium II that I bought in 1999 that spent over a decade in the closet. I even fully opened it and replaced the TIM with Arctic Silver 5 and reassembled. Works like a charm, albeit a bit slow for the graphics cards I have installed (RIVA TNT2 and Voodoo2)

292dps.png
3smzsb.png
0fvil8.png
lhbar1.png

Reply 7 of 34, by Ace

User metadata
Rank Oldbie
Rank
Oldbie

In my experience, I've found Rogue Squadron 3D to be quite picky about what hardware it runs well on. I've tried the game with the following CPU/GPU combinations:

-Pentium III 933MHz/Rage 128 Pro AGP
-Pentium III 933MHz/Voodoo 3 3000 AGP
-Pentium III 933MHz/GeForce 4 Ti4200 AGP
-K6-III+ 450MHz (overclocked to 600MHz)/Voodoo 3 3000 AGP
-Pentium 4 2GHz/Radeon 9250 AGP
-Pentium 4 2.66GHz/GeForce 6200 AGP

This has been my experience with each, all with VSync enabled (I can't stand screen tearing):

-The Pentium III 933MHz/Rage 128 Pro combination worked quite nicely with only minor framerate drops below 60FPS
-Swapping out the Rage 128 Pro with the Voodoo 3 3000 on this same computer gave virtually flawless 60FPS with only VERY SLIGHT stuttering here and there
-Using the GeForce 4 Ti4200 with this Pentium III resulted in rather bizzare behavior. This card needs older ForceWare drivers to get good performance as with the latest ForceWare 81.98 drivers, framerates are all over the place. With ForceWare 21.32, performance is similar to the Rage 128 Pro.

I should note that both of these tests were done on a 440BX board with the FSB set to 133MHz. The Rage 128 Pro was only tested with DirectX 9c, but the Voodoo 3 was tested with both DirectX 8 and DirectX 9c. No difference between either of them. The GeForce 4 Ti4200 was tested with DirectX 8 only. Also, not all GeForce 4 Ti4200s seem to like running on an overclocked AGP slot as one of my two GeForce 4 Ti4200s resulted in an automatic underclock back to 100MHz FSB.

-The K6-III+/Voodoo 3 3000 combination was the most PAINFUL to get working. Since the game supports both Glide and Direct3D, you have the option to use one or the other, but for some unknown reason, even if I set the game to work with Glide, it forces itself to Direct3D! The only workaround I found is to temporarily disable DirectDraw acceleration in DXDIAG. With this combination, performance is MUCH better with Glide than Direct3D; in Glide, the game can hold 30FPS fairly well with a few spikes to 60FPS (closer to the Nintendo 64 version's framerate, only smoother), but in Direct3D, it's choppy as all hell with MAJOR framerate drops and the game has a hard time holding 30FPS. I've tried DirectX 6.1, 8 and 9c, all perform equally as poorly.
-The Pentium 4 2GHz/Radeon 9250 combination performed surprisingly poorly, almost as choppy as the K6-III+/Voodoo 3 3000 combination. Tested with DirectX 9c.
-The Pentium 4 2.66GHz/GeForce 6200 combination resulted in perfect 60FPS throughout with DirectX 9c, though I should point out that unlike every other test, this one was done using Windows ME. Every other test was done with Windows 98 SE.

I really question what kind of CPU/GPU combination this game wants. It seems if your GPU is more powerful than your CPU, the game experiences major framerate issues. A Pentium III 450MHz would likely not do very well alongside a GeForce 3. Maybe consider a Tualatin Pentium III or perhaps some early 2000s Athlons.

Creator of The Many Sounds of:, a collection of various DOS games played using different sound cards.

Reply 8 of 34, by Scali

User metadata
Rank l33t
Rank
l33t
agent_x007 wrote:

What driver did you use for graphics card ?
GeForce 3 doesn't support DirectX 9, only DirectX 8.1 (SM1.1).

I wish this confusion between API and feature levels would stop.
GeForce 3 supports the DX9 API just fine, and many games written for DX9 will work just fine on it (eg Half-Life 2, Far Cry).
Of course it is limited to SM1.1 inside the DX9 API, but that's no problem. Even DX7-class hardware can work under the DX9 API, just limited to the fixed-function pipeline and the caps that they support (eg, you can play HL2 even on a GeForce2).

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 9 of 34, by buckeye

User metadata
Rank Oldbie
Rank
Oldbie

From what I gather from Ace, I can put back in my P3 450 and take out the GF3 but all I have on hand is:

Diamond Viper TNT2 Ultra 32mb AGP
Hercules 3D Prophet II Ultra 64mb AGP

I'll stick with DirectX 9 for now. I'll post my findings after some testing - weekends just shot to @#$!!!!.

Asus P5N-E Intel Core 2 Duo 3.33ghz. 4GB DDR2 Geforce 470 1GB SB X-Fi Titanium 650W XP SP3
Intel SE440BX P3 450 256MB 80GB SSD Radeon 7200 64mb SB 32pnp 350W 98SE
MSI x570 Gaming Pro Carbon Ryzen 3700x 32GB DDR4 Zotac RTX 3070 8GB WD Black 1TB 850W

Reply 10 of 34, by agent_x007

User metadata
Rank Oldbie
Rank
Oldbie
Scali wrote:

I wish this confusion between API and feature levels would stop.
GeForce 3 supports the DX9 API just fine, and many games written for DX9 will work just fine on it (eg Half-Life 2, Far Cry).
Of course it is limited to SM1.1 inside the DX9 API, but that's no problem. Even DX7-class hardware can work under the DX9 API, just limited to the fixed-function pipeline and the caps that they support (eg, you can play HL2 even on a GeForce2).

I didn't said it can't be used when newer DX is installed.
I meant that even IF it is installed (DX9), you won't be able to run DirectX9 native programs.
Example : You cannot run 3DMark 05/06 tests on GeForce 3/4 GPU's, and it doesn't matter if you have Win 10 with DX12, or Win XP with DX9c - it is not possible.
It's true that DirectX 9 games can support SM1.1, but it's in dev's hands to make a proper support and optimisations for it. DirectX 9 does not guarantee DirectX 8.X hardware support.

As for games that support both DX9 and DX7 hardware :
A special DX7 codepath is needed for game engine to use when such cards are detected.
Like in CoD2 or Half-Life 2 (where you can choose DX9 or DX7 path depending on performance, and DX9 path isn't available for DX7 hardware).
There are no "Feature Level" or "Shader Model" or "caps" for DirectX 7 hardware in DX9, because DX7 cards cannot support any Shader Model.

157143230295.png

Reply 11 of 34, by leileilol

User metadata
Rank l33t++
Rank
l33t++
agent_x007 wrote:

There are no "Feature Level" or "Shader Model" or "caps" for DirectX 7 hardware in DX9, because DX7 cards cannot support any Shader Model.

i don't think you know how directx and apis work and why you're redefining them in front of a experienced 3d veteran about them

it's always had caps and support for an API is not determined by the shader model number a hardware supports

A Voodoo2 can run some DX8 games even and that's a DX5-era card.

Last edited by leileilol on 2016-07-29, 21:08. Edited 3 times in total.

apsosig.png
long live PCem

Reply 12 of 34, by agent_x007

User metadata
Rank Oldbie
Rank
Oldbie

Better way of putting what I wanted to say (?)
IF dev's put some effort, they can support [almost] anything.
But if they don't, you are screwed with old hardware.

Can a veteran answer me this :
Is it possible for a game that uses DirectX 9 heavily, to work on DirectX 7/8 hardware (that is not supported in anyway by the developer), by simply adding "caps" in 3-rd party mod to that game ?

I want to see the slowest slideshow ever, but it must be a slideshow, not an error message 😀

157143230295.png

Reply 13 of 34, by Scali

User metadata
Rank l33t
Rank
l33t
agent_x007 wrote:

I meant that even IF it is installed (DX9), you won't be able to run DirectX9 native programs.

Sure you would, that's my point.
Half-Life 2 and Far Cry are DirectX9 'native' programs (I hate that 'native' term, gets used for all kinds of nonsense these days).
That is, the only API they support is DirectX9. In other words, they are linked to d3d9.dll, and no other DLL of any other D3D version whatsoever, so they do not access any code other than that belonging to DirectX9.

agent_x007 wrote:

It's true that DirectX 9 games can support SM1.1, but it's in dev's hands to make a proper support and optimisations for it. DirectX 9 does not guarantee DirectX 8.X hardware support.

I didn't say anything even remotely like that.
Fact of the matter is, when DX9 came out, most people still had DX7/DX8-era hardware, and as such, a lot of games have supported such hardware in the early DX9-days (remember, DX9 is REALLY old, been around since 2002. It wasn't until around 2006-2007 that SM2.0+ hardware was commonplace).

agent_x007 wrote:

A special DX7 codepath is needed for game engine to use when such cards are detected.

That is not correct.
A codepath that supports the features of DX7-level hardware is needed (and technically there is no such thing, back in those days, features were all over the place, so you didn't go by DX version number, but rather by whatever the caps bits told you the hardware did or did not support). That code is still DX9 though (see above, d3d9.dll only).

agent_x007 wrote:

There are no "Feature Level" or "Shader Model" or "caps" for DirectX 7 hardware in DX9, because DX7 cards cannot support any Shader Model.

DX9 works with shader models and caps (pretty much the same thing as the feature level stuff we've had since DX11, just a bit more detailed, since as I said, the hardware was all over the place back then).
Here's what that looks like, in DXCapsViewer:
DX9Caps1.png
DX9Caps2.png

So DX7 hardware will just report no VS and no PS capabilities, but they will have various TextureOpCaps and other stuff, which allow you to shade pixels in various ways via the fixed function pipeline that is present in DX9 (which is far more capable than the one in DX7. Even most DX7-era hardware has far more capabilities than what DX7 exposes, so using DX9 on DX7-era hardware is the preferred way to go).
Also, you can still use the software vertex shader pipeline on DX7-level hardware.
In fact, some hardware (eg Intel IGPs) have pixel shaders, but no T&L or vertexshaders, so you run vertexshaders on the CPU to get full DX9 SM2.0+ functionality (cute that people talk about 'shader model' but technically, there's no rule that VS and PS have to be the same version, and on various hardware, they aren't).
So yes, technically, if you enable software vertexprocessing in DX9, you can run shaders on DX7 hardware. I have done this for some GeForce2-code in the past.

This concludes today's lesson of Direct3D programming 101.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 15 of 34, by Ozzuneoj

User metadata
Rank l33t
Rank
l33t

I would try DirectX 7.0a. http://www.oldversion.com/windows/directx-7-0a (I think this site is reputable, but I haven't tried this download myself.)

Any game that requires a newer version of DirectX would likely run much better on newer hardware. A Geforce 3 is basically the bottom of the barrel for DX8 feature support and won't run very well in any game that requires it.

The Geforce 2 Ultra may actually be faster than the Geforce 3 for older games as well. If it were me and I only had the options you've mentioned, I'd use Windows 98SE, DX 7.0a, Pentium III 450 and a Geforce 2 Ultra. The CPU is still totally underpowered versus the video card, but it should be sufficient for games from 1999.

Now for some blitting from the back buffer.

Reply 16 of 34, by buckeye

User metadata
Rank Oldbie
Rank
Oldbie

Replaced the Geforce3 with a Hercules 3d Prophet II Ultra and Rogue Squadron, Quake 2, Mechwarrior3, Return to Castle Wolfenstein all work much better - buttery smooth. Stayed with DirectX9 though, for now. Thanks to all for the suggestions!

Asus P5N-E Intel Core 2 Duo 3.33ghz. 4GB DDR2 Geforce 470 1GB SB X-Fi Titanium 650W XP SP3
Intel SE440BX P3 450 256MB 80GB SSD Radeon 7200 64mb SB 32pnp 350W 98SE
MSI x570 Gaming Pro Carbon Ryzen 3700x 32GB DDR4 Zotac RTX 3070 8GB WD Black 1TB 850W

Reply 17 of 34, by swaaye

User metadata
Rank l33t++
Rank
l33t++

I'd like to mention that if you are using a sound card that runs VXD drivers, you should try to stay with DirectX 7.0a or below. Otherwise you will probably run into BSODs, lock ups, ddhelp crashes, or other OS killing things. This is of course Win9x only because that's where VXDs were still used.

Reply 18 of 34, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
swaaye wrote:

I'd like to mention that if you are using a sound card that runs VXD drivers, you should try to stay with DirectX 7.0a or below. Otherwise you will probably run into BSODs, lock ups, ddhelp crashes, or other OS killing things.

Did those suddenly increase in frequency with DirectX 8? I thought those problems were generally inherent to VXDs.

Reply 19 of 34, by buckeye

User metadata
Rank Oldbie
Rank
Oldbie

Using a SB live 5.1, would that be safe with Dx9 or should I roll back? Can anyone list the steps for rolling back Dx9 to 7 or 8?

Asus P5N-E Intel Core 2 Duo 3.33ghz. 4GB DDR2 Geforce 470 1GB SB X-Fi Titanium 650W XP SP3
Intel SE440BX P3 450 256MB 80GB SSD Radeon 7200 64mb SB 32pnp 350W 98SE
MSI x570 Gaming Pro Carbon Ryzen 3700x 32GB DDR4 Zotac RTX 3070 8GB WD Black 1TB 850W