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:

Process Explorer screenshot.jpg
Filename
Process Explorer screenshot.jpg
File size
227.25 KiB
Views
1553 views
File license
Public domain

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.

Attachments

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 3 of 6, by Narzoul

User metadata
Rank Newbie
Rank
Newbie

You can use this reg file from DDrawCompat: https://raw.githubusercontent.com/narzoul/DDr … Redirection.reg
It should have all the ddraw-related keys, both for 32-bit and 64-bit Windows versions. It installs them under HKEY_CURRENT_USER, so no TrustedInstaller hacks are needed.

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:

Game options.png
Filename
Game options.png
File size
5.96 KiB
Views
1433 views
File license
Fair use/fair dealing exception

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

AoW - Main Menu - Fullscreen.png
Filename
AoW - Main Menu - Fullscreen.png
File size
25.17 KiB
Views
1433 views
File license
Fair use/fair dealing exception

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:

AoW - Main Menu - Window.jpg
Filename
AoW - Main Menu - Window.jpg
File size
71.75 KiB
Views
1433 views
File license
Fair use/fair dealing exception

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.

Attachments

  • Filename
    Debug logs.zip
    File size
    27.6 KiB
    Downloads
    68 downloads
    File license
    Public domain

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/