-
Notifications
You must be signed in to change notification settings - Fork 1
Registry Issues
DISCLAIMER: This page is heavily based off an equivalent guide for IndirectSound library. Therefore, all credit for documenting this method goes to John-Paul Ownby. I only adapted it to interfaces needed by XAudio2 and came up with a solution to add those entries via reg add
.
Starting with Windows 8, games using XAudio 2.7 will not use Co-Driver Splitter even if XAudio2_7.dll
is in the correct location. To fix this the Windows registry must be changed.
NOTE: This is only required for GRID and F1 games. If you only intend to use the plugin with DiRT games, you do not need to perform these steps!
The changes described in here only affect the current user. If you intend to use the plugin on multiple Windows accounts, the steps must be repeated for every user.
You can create all the necessary registry keys using a few commands in Windows:
- Open Command Prompt (
cmd.exe
). - Type or paste those commands exactly as follows:
reg add HKCU\Software\Classes\CLSID\{5a508685-a254-4fba-9b82-9a24b00306af}\InprocServer32 /ve /t REG_SZ /d XAudio2_7.dll /reg:64
reg add HKCU\Software\Classes\CLSID\{5a508685-a254-4fba-9b82-9a24b00306af}\InprocServer32 /ve /t REG_SZ /d XAudio2_7.dll /reg:32
There are two locations where the relevant CLSID registry values are located:
Computer\HKEY_CURRENT_USER\Software\Classes\CLSID
Computer\HKEY_CURRENT_USER\Software\Classes\WOW6432Node\CLSID
The CLSID used to instantiate a XAudio2 object equals to {5a508685-a254-4fba-9b82-9a24b00306af}
(case insensitive).
Do the following:
- Find if a key already exists for the CLSID (it likely won't)
- If the key doesn't already exist then you must create it
- It must be spelled exactly as listed above (including curly braces). I recommend copying/pasting from this page.
- The CLSID key needs a subkey named
InprocServer32
- If the subkey doesn't already exist then you must create it
- Change the
(Default)
value ofInprocServer32
toXAudio2_7.dll
The way games use XAudio 2.7 is to ask for an interface by specifying the CLSID (this has been changed in XAudio 2.8 and 2.9). In Windows 8 or later if a game does this Windows will always give an interface to the official Microsoft version of XAudio 2.7. By making these registry changes you are telling Windows to first look for XAudio2_7.dll
in the same directory that the game is in before it looks for the official Microsoft version).