VOGONS


First post, by dccs

User metadata
Rank Newbie
Rank
Newbie

So the game doesn't show any settings in the startup launcher with dgVoodoo2, so I can't start the game at all with it, it doesn't run. The dropdowns don't show anything at all when clicking on them, however natively without dgVoodoo2 they show fine if I manually select in the dropdowns. Is it a dgVoodoo2 bug or some setting I have to change in the control panel? I'm using dgVoodoo2's default settings.

Native:
sfjme6.png
dgVoodoo2 (latest version - v2.87.1):
a8jji6.png

Last edited by dccs on 2026-05-30, 19:24. Edited 1 time in total.

Reply 1 of 7, by dccs

User metadata
Rank Newbie
Rank
Newbie

I just used DebugView++ to trace dgVoodoo2's API calls, and the game tries to access DirectDraw from DLLMain, and since the D3D11 runtime doesn't run from DLLMain to prevent lockups/deadlocks (cuz the loader lock is still held in that function), the game has to be patched to make it work with dgVoodoo2, probably by delaying its initialization somewhere in the code. Since DirectDraw is probably being initialized inside VideoDrvDDraw.dll's DLLMain(), the most likely solution would be to move that function call outside of DLLMain(), but I'm not really sure how to do that in the assembly.

[dgVoodoo] INFO: Reading config from file H:\Local\Resurrection The Return Of The Black Dragon\dgVoodoo.conf.
[dgVoodoo] INFO: INI file based version of config file is successfully read.
[dgVoodoo] INFO: DDraw is successfully loaded: H:\Local\Resurrection The Return Of The Black Dragon\DDRAW.dll, architecture: x86
[dgVoodoo] WARNING: Attempt to access DirectDraw from DllMain. Application may need to be modified or patched to use with dgVoodoo.
DirectDrawEnumerateA (lpCallback = 00543110, lpContext = 0x0)
[dgVoodoo] INFO: Reading config from file H:\Local\Resurrection The Return Of The Black Dragon\dgVoodoo.conf.
[dgVoodoo] INFO: INI file based version of config file is successfully read.
DXGI ERROR: CreateDXGIFactory cannot be called from DllMain. [ MISCELLANEOUS ERROR #76: ]
[dgVoodoo] ERROR: DirectDrawEnumerateA: Enumerating primary device has failed.

Reply 2 of 7, by Dege

User metadata
Rank l33t
Rank
l33t

Well, yes, if a game is type-of-DllMain then only patching will help. I don't know if this game already has such a patch.

Reply 3 of 7, by dccs

User metadata
Rank Newbie
Rank
Newbie
Dege wrote on 2026-05-16, 12:05:

Well, yes, if a game is type-of-DllMain then only patching will help. I don't know if this game already has such a patch.

It doesn't have one, and the other DDraw wrappers don't have the best performance with this game.

Reply 5 of 7, by dccs

User metadata
Rank Newbie
Rank
Newbie
Dege wrote on 2026-05-30, 17:08:

Thanks a lot Dege, it works perfectly now, the game doesn't have any slowdowns either 😀 Any chance you could do one for End of Twilight as well? It has the same exact issue.

cqmbqi.png
2f3ow8.png

Reply 6 of 7, by Dege

User metadata
Rank l33t
Rank
l33t

Yes,

https://dege.fw.hu/temp/EndOfTwilight_patch.zip

I also included a patched version of dgVoodoo because the released ones freeze at the startup screen. The fix will be included in the next version ofc.
If you want to play this game with forced resolution or a scaling mode other than "unspecified" then you have to enable option GeneralExt\FreeMouse. Otherwise the mouse gets stuck to the left-top corner and you cannot move it at all.

Btw, this patch might be useful for non-dgV usage as well. My native Intel driver also gets stuck in DD initialization called from DllMain just like dgVoodoo.

Reply 7 of 7, by dccs

User metadata
Rank Newbie
Rank
Newbie

Thanks a lot again Dege! I'll release your files as a patch on PCGamingWiki and credit you, I patched your patched EXE to work without the CD. I'll take note of those instructions 😀