Skip to main content
GameDev.net gamedev.net
🔒 Locked

Backward compatibility, Direct3D

Started by Q-dad Nov 14, 2007 at 5:04 AM 1 replies 950+ views
Original Post
Q-dad
Q-dad
Hi, I'm still playing (and modding) an old game made by Novalogic, i.e. Delta Force 2, released in November, 1999. It still runs great, even on new machines with Vista/DirectX 10, at least in SW mode, windowed or full screen. If trying to run the game in full screen, HW mode, the background voxel terrain is rendered correctly, while the foreground 3D objects are rendered at the wrong locations, in both x, y and z directions. This used to work on older machines and/or OSes, not sure exactly when it stopped working. It also seems to be a problem with both Nvidia and AMD/ATI cards these days. I believe Novalogic used one of the DirectX 6 versions (or possibly an early version of DirectX 7) when developing the game. Would this mainly be a problem due to modern device drivers not supporting DirectX 6 (or 7) instructions/functionality...? If so, how would one know if a device driver supports old DirectX versions...? They usually only describe the newest version of DirectX that is supported... The reason for asking is simply that I would like to use FRAPS to record videos of gameplay, etc., and the FRAPS guys has stated that in order for FRAPS to work with this game, one has to run it in full screen HW mode. Is there a way to solve this problem, other than to dig out my old PC from the attic...? I guess it's not possible to have an old generic driver installed together with a new one, and that the old one is to be used only when running one specific program, i.e. this game...? I also guess it would be too difficult to backward engineer the .exe file as well, and change the DirectX instructions in there...? Thx for reading :)
jollyjeffers
jollyjeffers
Quote:
Original post by Q-dad
I believe Novalogic used one of the DirectX 6 versions (or possibly an early version of DirectX 7) when developing the game.
You should be able to fire up 'dependency walker' (should be standard in either VS or the PSDK) to see which D3D/DX DLL's it relies on.

Quote:
Original post by Q-dad
Would this mainly be a problem due to modern device drivers not supporting DirectX 6 (or 7) instructions/functionality...?
Well they'll be offering higher DDI interfaces - I'd be surprised if there were many drivers around now that didn't publish themselves as DDI-9 or maybe DDI-8. Older API's are going to be mapped directly to the newer DDI's or possibly newer API's. For example, Windows Vista only has D3D9/D3D10 paths direct to the driver and 6/7/8 will be mapped through the D3D9 route.

I suppose the key point being that the OS and the Display Model (XPDM/WDDM) hide the various API's and the driver probably only sees D3D through one (or maybe two) interfaces.

Quote:
Original post by Q-dad
Is there a way to solve this problem, other than to dig out my old PC from the attic...?
No easy solution that I can think of. You're at the mercy of various vendors - Novalogic, Microsoft, Nvidia/ATI... Microsoft pour huge resources into backwards compatability and Nvidia/ATI do to a more limited extent. Ultimately I doubt an 8 year old game is high on their priority list...

You could always find that it's really Novalogic's fault - maybe they relied on some bad coding practices that "just worked" on older drivers/OS's but they're now a lot stricter and that fugly old code no longer works the way they thought it did and it all comes crashing down.

Quote:
Original post by Q-dad
I guess it's not possible to have an old generic driver installed together with a new one, and that the old one is to be used only when running one specific program
I can't see that working.

Quote:
Original post by Q-dad
I also guess it would be too difficult to backward engineer the .exe file as well, and change the DirectX instructions in there...?
Very difficult, if not impossible. Probably illegal as well.


Cheers,
Jack

<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ |
Q-dad
Q-dad
Thank you for a very fast and informative reply! :)

Novalogic for sure won't touch it, so I guess I'm heading for the attic one of these days. ;)

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.