Sign in to follow this  

win10: no native support for pre-dx10 games. additional runtime required?

This topic is 467 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

one of my testers was installing caveman 3 and got an error that d3dx9_43.dll is missing.

 

a google search revealed that win10 only has the runtime files for dx 10, 11, and 12, but not older versions, and one must DL the "directx end user runtime files" for win10 to get true DX capabilites for all versions of DX.

 

all true eh?

 

 

 

 

Share this post


Link to post
Share on other sites

d3dx9_43.dll
 

 

As above, this is not a D3D DLL. It's a D3DX DLL (note the bolded "x"). You've always needed to bundle the redistributable installer for this (not the actual DLLs, that's not legal). Chances are you may have no noticed it before because you picked up a version that some other game or program installed as part of its installation process.

Share this post


Link to post
Share on other sites

D3DX has never been a part of the operating system

 

ah! d3dx! good point!

 

actually in the past, i've simply stated dx9 compatable PC as a system requirement, and left it to the user to DL and install the runtime themselves. typically the troubleshooting support info contained info about installing the Dx runtime.

Share this post


Link to post
Share on other sites

actually in the past, i've simply stated dx9 compatable PC as a system requirement, and left it to the user to DL and install the runtime themselves. typically the troubleshooting support info contained info about installing the Dx runtime.


An you really think thats a good idea. I'm going to go out on a limb and say the regular user just want to install a game a play, not have to go download some redist or some other requirement imposed by YOUR game. With that said other's have already mentioned the best practice where things are concerned. Stating that DX9 compatible PC has nothing to do with that error as any user can have a DX9 compatible PC and experience the issue you've mentioned.

Share this post


Link to post
Share on other sites

An you really think thats a good idea. I'm going to go out on a limb and say the regular user just want to install a game a play, not have to go download some redist or some other requirement imposed by YOUR game. With that said other's have already mentioned the best practice where things are concerned. Stating that DX9 compatible PC has nothing to do with that error as any user can have a DX9 compatible PC and experience the issue you've mentioned.

 

until windows 8, you had to install dx to get both the d3d and d3dx files. this was usually done by installing some game that included the redistributable.  as a consequence, pretty much everyone who had ever installed a dx game had dx installed already. so there was almost never a need to install dx. instead of increasing the game size by adding the dx redistributables which were almost never needed, and slowing down the install  by running the dx install, which basically did nothing because it was already installed, i would simply provide links to the redistributable for those very few users who didn't already have dx installed. things haven't really changed much with win8 and win10. anyone who's ever run a dx9 game has the runtime installed already. and for the few who haven't, the choices are to provide a link to the files, or to increase the file size and add an extra setup step unnecessarily for everyone else. as dx9 games become less common, and win 8 and later become more common, adding the runtime setup to the game would probably be a good idea. but at this point in time, i think we're still at the point where including it would be an inconvenience for the majority of users - as they've installed a dx9 game before.

Share this post


Link to post
Share on other sites

That's not necessarily true, as there are many different versions of the D3DX runtimes that do not sync up with the D3D runtimes. Just because you have versions 1, 3, 8, and 15 doesn't help if your game needs version 11. 

Share this post


Link to post
Share on other sites

That was why each time a new D3D/D3DX SDK was released it had a matching redistribution module.  You had to match what you compiled against and if you linked to the generic download it might not work once they updated it.  You made installing your game a serious hurdle to playing it for technically challenged people.  Unless that was part of a puzzle game, then that would be a bit devious.

Though I have not read up on recent versions as I'm using Vulkan/OpenGL.

Share this post


Link to post
Share on other sites

one of my testers was installing caveman 3 and got an error that d3dx9_43.dll is missing.

 

a google search revealed that win10 only has the runtime files for dx 10, 11, and 12, but not older versions, and one must DL the "directx end user runtime files" for win10 to get true DX capabilites for all versions of DX.

 

all true eh?

 

It is up to you to supply all needed dlls for your game to run, if you need the DX end user runtime you should supply it with your download. This is what all tripple A games do, although nowadays this is hidden by steam installing these components for you if you are a steam game.

Share this post


Link to post
Share on other sites

until windows 8, you had to install dx to get both the d3d and d3dx files. this was usually done by installing some game that included the redistributable.  as a consequence, pretty much everyone who had ever installed a dx game had dx installed already. so there was almost never a need to install dx. instead of increasing the game size by adding the dx redistributables which were almost never needed, and slowing down the install  by running the dx install, which basically did nothing because it was already installed, i would simply provide links to the redistributable for those very few users who didn't already have dx installed. things haven't really changed much with win8 and win10. anyone who's ever run a dx9 game has the runtime installed already. and for the few who haven't, the choices are to provide a link to the files, or to increase the file size and add an extra setup step unnecessarily for everyone else. as dx9 games become less common, and win 8 and later become more common, adding the runtime setup to the game would probably be a good idea. but at this point in time, i think we're still at the point where including it would be an inconvenience for the majority of users - as they've installed a dx9 game before.

 On all versions of Windows, you need to install the appropriate D3D runtimes to ensure you've got the right version of the d3d9 and d3dx9 dlls as used by a particular game. Different games may also require different versions.
Simply assuming that your customer has probably installed the right D3D9 version already because they play games, therefore have likely installed a game that happens to use the same version of the runtime as you is not very professional™. It's the equivalent of not vaccinating because the rest of the community will probably give you herd immunity, or eating dog food because it's probably safe since the manufacturer is forced to maintain human-grade processing after they got sued by that guy who chose to eat dog food. If I met a doctor or a chef doing such things, the impression they would give me is that they are not very professional™.
 
Sure, if you're still targeting people on dial-up internet, then having a seperate RAR or 7Z archive, with no installer or runtimes (in order to minimize download size to the extreme) is a very nice thing to do... If you're afraid of file-size, there's also the online version of the installer, which is under a few hundred KB.
In the general case though, it's just a customer service nightmare waiting to happen. If someone runs you game and it complains about a missing DLL, they're not going to blame themselves and they're not going to blame Microsoft, they're going to blame you for writing "such a buggy game".
If you're distributing via a modern platform such as Steam, bundling D3D9/D3DX with your game is as simple as ticking a single checkbox in the setup page for your repository. Steam will avoid downloading it if another game has already forced it to, or will download and install it automatically when required.

Share this post


Link to post
Share on other sites

since i'm still in development, i haven't really addressed the issue as to whether to include it or not.

 

obviously, the overwhelming opinion here is that i should.

 

but its my understanding that d3dx versions are all backwardly compatible. so all you need is the version your game uses or any newer version. and in general, you don't need every version used by every game installed, just the newest, which can be used by all. and every time they came out with a new version of dx, they came out with a new version of d3dx that included the latest features - as well as all existing features. that is, until d3dx went away altogether - apparently with d3dx_47.dll being the last version.

Edited by Norman Barrows

Share this post


Link to post
Share on other sites

You should just bite the bullet and ship the correct redistributable for your game. It's not hard, people are used to it, and it will save you far more time and effort in the long run since you will drastically reduce the inscrutable support emails you have to handle as a result of mismatched DLL versions. That is a game you do not want to play.

Share this post


Link to post
Share on other sites

its my understanding that d3dx versions are all backwardly compatible. so all you need is the version your game uses or any newer version. and in general, you don't need every version used by every game installed, just the newest, which can be used by all

 

This isn't the case - each D3DX version uses a different DLL. You can actually customize the redistributable for your game to only include the version of D3DX that you actually need. This lets you cut down the download size.

Share this post


Link to post
Share on other sites

You can actually customize the redistributable for your game to only include the version of D3DX that you actually need.

Is there a way to know which specific version of d3dx my app is linking to? Also, does anybody know if the Directx web installer will install all versions of d3dx? If so, including it and running it with the installer seems like a nice idea.

Share this post


Link to post
Share on other sites

does anybody know if the Directx web installer will install all versions of d3dx?

 

that link said so as i recall.

 

If so, including it and running it with the installer seems like a nice idea.

 

for install from web, yes. for install from disc, that would require the PC have an internet connection (most likely a high speed connection). 

Share this post


Link to post
Share on other sites
The separation of D3DX from D3D was one of the main reasons for me to kick it out. And in hindsight it was a grand idea :)

A bit of performance may have been lost, but my games simply work.


Might be an idea, depending on how much you actually use of D3DX.

Share this post


Link to post
Share on other sites

Might be an idea, depending on how much you actually use of D3DX

 

well it does all the loading of .x, bmp, and wav files, as i recall. and i turned the tiny.cpp skinned mesh demo and the multi-animation demo and a few macros from DXUT into a semi-turnkey dx9 skinned mesh library. whats else does d3dx do? i'm not using it for video playback or anything weird like that. i just load assets and draw 3d scenes.

 

offhand i'd say i'm rather heavily dependent on it.

Share this post


Link to post
Share on other sites

This topic is 467 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this