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

Reply 1 of 1, 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, proably 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.