ultra wrote on 2024-04-09, 13:25:
So that's why I'm confused. If I get this right, the game might use some other DirectX 9 components, but Direct3D 8 for rendering? Correct me if I'm wrong, Shader Model 2.0 first appeared with DirectX 9, so games requiring DirectX 8 use Shader Model 1.2/1.3/1.4
Yes, the game might require a newer input, sound, etc. API from the DX9 suite/package, but use D3D8 for graphics. When I say it uses D3D8 it actually loads d3d8.dll and doesn't even touch d3d9.dll. When it's using D3D8 then there won't be any 2.x shaders.
Even when using D3D8, as mentioned before, it could still be a shader-less game. Many early D3D8 games fall into that category.
Regarding shaders, AFAIK the same thing applies to D3D9. You could make a D3D9 game (loads d3d9.dll) that uses D3D8 shader versions (1.x), or no shaders at all.
There are examples of older games where they require DX8 to be installed but actually use D3D7 (d3dim700.dll) for graphics.
There are many OpenGL games that use non-graphics APIs from DirectX, but obviously you won't call them "DirectX games".
Also, as Putas pointed out, some games might list a higher DX as a requirement but not actually need it at all. These are usually re-released games, where the original release came with, say, a DX8 installer but a later release of the same game included a higher version. I'm not sure, but it could be a requirement by MS to not ship games with an old DX redistributable when a newer one is available, even if the newer one is not necessary.
P.S. all of this is also why I never use the term "DirectX" when talking about the graphics API, "Direct3D". Unfortunately basically everyone use them interchangeably even when it doesn't apply.
EDIT:
You can run a D3D9 game on a GeForce 4 (or any other D3D8 hardware) only if the game has an additional D3D8 compatible path.