5

I have the latest DirectX. However, I am installing an older game, and it asks if I would like to install DirectX 6.1.

Should I allow the install program to do that?

9
  • First thing I would try is not allowing it. You don't indicate what OS impossible to even know if it would install
    – Ramhound
    Commented Feb 13, 2014 at 2:11
  • 1
    @Ramhound DirectX is a Windows-only framework
    – Robotnik
    Commented Feb 13, 2014 at 4:14
  • 2
    @Robotnik OS can imply version, too. There are several OSes in the Windows family (95, ME, NT, XP, CE, 7, Phone 7, Server 2003, etc...) Commented Feb 13, 2014 at 5:53
  • 1
    @JonathanBaldwin - I think we can exclude server OSs, and phones won't have games running on DX6. Further, the 'latest DirectX' only runs on the currently supported & most popular consumer Windows OSs, namely Windows 7, 8 and 8.1, which are all fairly similar under the covers
    – Robotnik
    Commented Feb 13, 2014 at 8:20
  • I know this I develop software using direct x daily. For an actually answer I need the exact version of windows being used
    – Ramhound
    Commented Feb 13, 2014 at 10:53

5 Answers 5

10

Short answer: Yes, It's fine to install it. If the game requires that version of the library, it won't run (properly) without it.


Long answer:

Frameworks like DirectX, OpenGL etc are (basically) just collections of common functions i.e. things which every program needs to do, but don't need to be reinvented/rewritten every time you write a new program. DirectX for example, is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video.

Of course, being programs & libraries themselves, they get updated regularly with bug fixes, new features, improvements to the performance of older functions, and sometimes (especially major updates) a restructuring and rebuilding of the entire package itself.

What this means is that sometimes when older programs attempt to access features in the newer frameworks, those features aren't there. They've either been moved, renamed, or changed drastically so that the result is not what the program was expecting.


For example, say a game relied on a function:

DrawObjectToScreen(Object o, Point p); 

which takes an object, and a Point, representing the pixel coordinates (x,y) for the object.

But an update to the framework comes out, the above method is removed and replaced by:

Draw(Object o, Point p);

Our game doesn't know about Draw(). It looks for DrawObjectToScreen(), doesn't find it, and throws an error.


So in order for a development company to upgrade a program to a newer framework, they would need to:

  • Learn how things changed in the new version
  • Find all the missing/broken references to the old framework, and upgrade & replace them. Sometimes they might have to restructure entire sections of code to workaround the newer APIs.
  • Upgrade and individually test each place where the new framework has new functionality, to ensure that nothing has changed or broken as a result of the upgrade.
  • Find and fix/workaround any Bugs related to the new version of the framework
  • Build up a version of the program for release, including documentation (Release Notes), Strategies for dissemination of the new version etc
  • Release the new version, and deal with any Bugs that arise (not working properly on different OS builds etc).

And all of this would provide little benefit to the end users:

  1. The program worked fine on the old version, and nothing new was added*
  2. You've forced them to update, or at least deal with mismatches between someone having one version and someone having another
  3. You may have introduced more bugs than you fixed.

*Except performance or the ability to run on newer/different OSs & platforms, which would be the major justification for doing this.

So yes, if a program requires a certain version of a framework, it would be best to install that version. Luckly these days this is usually handled for you when you run the installer.

1

If the game comes from a reliable source then I would allow it. It's possible that the latest direct x (11I think) is not backwards compatible with the api for direct x 6 in which case it would be perfectly fine to have both if you need both.

1

No, you don’t need to install previous versions of DirectX if you have already installed the latest version of DirectX 9.0c (June 2010 update), which Microsoft now calls the "legacy DirectX SDK".

My experience with all the old, pre-DirectX 10 games that I played (on Windows XP – Windows 10) is that once DirectX 9.0c June 2010 update is installed, there should be no need to install DirectX versions prior to DirectX 10, even if a game installer prompts you to.

Old games prompt the user to install old pre-DX10 DirectX versions because of DirectX's convoluted components and installation process in the past, as explained in this MSDN blog post:

When the DirectX technology was created in the mid 1990s, it was designed to be deployed by games into the Windows 95 operating system as part of the game’s install process. As the number of supported operating systems grew, so did the complexities of deploying these components. The DirectSetup API and well-known DXSETUP.EXE program became common place on game disks, and PC gamers everywhere were trained to run it themselves to keep their systems ready for the latest games. Of course, there were also many problems with poorly written installers, misconfigured machines, and the fact that DirectX components themselves were rather invasive into the system.

This process had been simplified by the time Windows XP SP2 was released, when DirectX had been made part of the OS. From the aforementioned MSDN blog post:

The solution to this testing and deployment madness was simple: DirectX became part of the operating system. The components in DirectX 9.0c–Direct3D, DirectDraw, DirectSound, DirectInput, DirectMusic, DirectPlay, and DirectShow–were included with Windows XP Service Pack 2, Windows Server 2003 Service Pack 1, and Windows XP x64 Edition (which is actually Windows Server 2003 SP1 in XP clothing). From that day forward, DirectSetup no longer deployed “DirectX” in the way that everyone had understood for a decade.


Note that not all components of DirectX 9.0c / legacy DirectX SDK are installed by default on modern Windows OSs (until Windows 11) even if DirectX 11 or 12 is already pre-installed. You can download the DirectX 9.0c June 2010 update from Microsoft's website: Standalone Installer / Web Installer.

This DirectX End-User Runtime does not change the version of DirectX, but does install a number of optional side-by-side technologies from the legacy DirectX SDK that are used by some older games. For a detailed explanation see https://aka.ms/dxsetup.

Note that this package does not modify the DirectX Runtime installed on your Windows OS in any way.

On the Standalone installer, after you run it, it will ask you to specify a directory where the installation files should be extracted. Specify a directory and extract the files. In the extraction directory, run DXSETUP.exe. This will install all components of DirectX 9.0 / legacy DirectX SDK. I can confirm that the Standalone installer works and can be installed on Windows 10. I installed it just before I posted this answer.

0

I would disallow it because it won't work. You say you run the latest DirectX. The latest is DirectX 11, which is supported only on Windows Vista and newer. DirectX 6 is only supported on pre-NT OSes (95, 98, ME).

1
  • 1
    It might work (probably only on 32-bit) because the older DX versions had software fallback modes, so you're then just running a really old GDI app. Commented Feb 13, 2014 at 5:51
-2

just run microsoft DirectX End-User Runtime Web Installer heres the link http://www.microsoft.com/en-us/download/details.aspx?id=35 this will update ur current dx to include files of dx starting from 2005

1
  • 1
    This doesn't answer the question. The OP isn't looking for means to update to the latest version of DirectX. And what you said is wrong. The web installer will only install the latest version of DirectX. Commented Dec 6, 2014 at 10:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.