VOGONS


First post, by XJDHDR

User metadata
Rank Newbie
Rank
Newbie

I am trying to use dgVoodoo with Age of Wonders. I copied D3D8.dll, D3DImm.dll and DDraw.dll from the x86 folder to the game's root folder, as well as the default CONF file and changed some settings. However, dgVoodoo was having no effect on the game. I opened Process Explorer and found that the reason for this is that the game isn't loading dgVoodoo's DLLs at all but is loading the system's instead:

The attachment Process Explorer screenshot.jpg is no longer available

I'm trying to work out what I need to do to get the game to load dgVoodoo's files. The only thing I can think of is a similar problem that is noted in IndirectSound's readme; some game's load DSound.dll by querying it's CLSID. When that happens, Win8 and later gives the game the location of the system's DLL. I could try their solution in this case but I don't know what CLSIDs are used for DDraw.dll, assuming that is the problem to begin with.

Edit: I'm using dgVoodoo v2.74 with Windows 10 Home x64 20H2.

Last edited by XJDHDR on 2021-08-09, 23:15. Edited 2 times in total.

My creations and essays:
https://xjdhdr.gitlab.io/

Reply 1 of 6, by XJDHDR

User metadata
Rank Newbie
Rank
Newbie

I just did some tests and the CLSID issue I mentioned seems to be what is going on. If I just drop the DSound.dll from IndirectSound into Age of Wonder's root folder, the game still loads the system dll instead. After I applied the registry fix mentioned in their readme, the game loaded the IndirectSound DLL instead.

Does anyone know what CLSIDs are used for loading the DLLs dgVoodoo replaces? I think this problem will be solved once I apply the same tweak for those.

My creations and essays:
https://xjdhdr.gitlab.io/

Reply 2 of 6, by Dege

User metadata
Rank l33t
Rank
l33t

You can find them by running Regedit and searchin for 'ddraw.dll'.
You'll see entries like

HKEY_CLASSES_ROOT\CLSID\{3C305196-50DB-11D3-9CFE-00C04FD930C5}\InprocServer32

You can also modify the default key values from %SystemRoot%\system32\ddraw.dll to plain ddraw.dll to bypass the system folder (but it needs ProcessHacker with TrustedInstaller plugin).

Reply 4 of 6, by XJDHDR

User metadata
Rank Newbie
Rank
Newbie

Thanks for the help. That Reg file worked perfectly and you don't need TrustedInstaller privileges to make these changes to the HKCU hive.

I've encountered some new issues though. First, I've upgraded to dgVoodoo v2.75.

In the game's options, you can either select a fullscreen resolution or you can choose Windowed:

The attachment Game options.png is no longer available

If I choose any resolution, the main menu looks like this:

The attachment AoW - Main Menu - Fullscreen.png is no longer available

This is what it's supposed to look like, which I get by choosing the game's "Window" video mode. Strangely, the dgVoodoo watermark isn't appearing even though Process Explorer says that the game is loading dgVoodoo's DDraw.dll:

The attachment AoW - Main Menu - Window.jpg is no longer available

These tests were done using an unmodified config file except for MaxTraceLevel set to 2. If it helps, I've attached some debug logs from the two tests.

My creations and essays:
https://xjdhdr.gitlab.io/

Reply 6 of 6, by XJDHDR

User metadata
Rank Newbie
Rank
Newbie
Dege wrote on 2021-07-14, 15:27:

What happens when you run the game through D3D12?

The problem seems to be the same as
https://github.com/dege-diosg/dgVoodoo2/issues/16

Sorry about that. My laptop has two GPUs in it: A low powered AMD GPU integrated into the APU and a discreet Nvidia GPU. Any games I play are supposed to run on the Nvidia GPU and this is what I assumed was happening. To answer your question: Running the game through DX12 fixed that problem. Conversely, forcing the game to run on the Nvidia GPU like it was supposed to also fixes the problem.

I was also having some error messages and crashes after loading a game but haven't been able to make one happen since forcing the game onto the Nvidia GPU. I'll post here again if I find anything. Thanks for the help.

My creations and essays:
https://xjdhdr.gitlab.io/