VOGONS


First post, by XJDHDR

User metadata
Rank Newbie
Rank
Newbie

I am trying to use dgVoodoo to force the setup program that installs Emperor: Battle for Dune to run in Windowed mode. For some strange reason, Westwood's developers decided that the installer needs to be a fullscreen application. I am using the installer fix version that Westwood created and which can be downloaded here: http://dune2k.com/Download/32. To clarify, this is not the Setup.exe that is found at the root of the game's install disc, it is the one found in the "SETUP" folder on that disc. To use dgVoodoo with it, you simply need to drop "DDraw.dll", "D3DImm.dll" and "dgVoodoo.conf" into the folder "<location of Install CD's contents>/SETUP". Alternatively, if you don't want to mess around with adding files to a disc image, you can download the installer fix SETUP.exe I mentioned above, place the dgVoodoo files in the same place as that installer then run it while you have the install disc inserted. The only changes I made to the default "dgVoodoo.conf" was: "FullScreenMode = false", "AppControlledScreenMode = false" and "dgVoodooWatermark = false".

I tried using dgVoodoo v2.55.3 as well as the WIP50 build but in both cases, the installer crashed on start. Here is the debug output from DebugView++ (log output was pretty much identical for both dgVoodoo versions)

10	1495.535655	 8864		SETUP.exe	[dgVoodoo] INFO: Reading config from file G:\Games\Other\Emperor - Battle for Dune\Install disc\SETUP\dgVoodoo.conf.
11 1495.536085 8864 SETUP.exe [dgVoodoo] INFO: INI file based version of config file is successfully read.
12 1495.536219 8864 SETUP.exe [dgVoodoo] INFO: DDraw is successfully loaded: G:\Games\Other\Emperor - Battle for Dune\Install disc\SETUP\DDRAW.dll
13 1495.536312 8864 SETUP.exe [dgVoodoo] INFO: Reading config from file G:\Games\Other\Emperor - Battle for Dune\Install disc\SETUP\dgVoodoo.conf.
14 1495.536650 8864 SETUP.exe [dgVoodoo] INFO: INI file based version of config file is successfully read.
15 1495.726138 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988) is created on output device 0. Maximum video memory: 65536 kBs, currently available video memory: 60416 kBs.
16 1495.726241 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988) Virtual video card is 'dgVoodoo Virtual 3D Accelerated' with 64MB onboard memory.
17 1495.726323 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988) Object implementation is plain old pre-DX7 DirectDraw. D3D7 cannot be used via this one.
18 1495.726463 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988) Requested output API type is "Best Available", DDI type is D3D 10.1, hardware accelerated
19 1495.726592 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988) External shader compiler is successfully found: C:\Windows\SYSTEM32\D3DCompiler_47.dll
20 1495.728711 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988)::SetCooperativeLevel: cooperative level is bound to window (50756), exclusive level, for fullscreen mode
21 1495.748843 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988)::SetDisplayMode: Display mode 800x600, 16 bit, 59 Hz is set.
22 1495.748943 8864 SETUP.exe [dgVoodoo] INFO: DirectDrawPalette (0DE08008):Init/SetEntries: palette entries loaded.
23 1495.749009 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988)::CreatePalette: DirectDrawPalette (0DE08008) is created
24 1495.750361 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988)::CreateSurface: Primary surface is created, DirectDrawSurface is (0E212970).
25 1495.750423 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988)::CreateClipper: DirectDrawClipper (0DCEB828) is created
26 1495.750496 8864 SETUP.exe [dgVoodoo] INFO: DirectDrawClipper (0DCEB828)::SetHwnd: Clipper is bound to window (50756).
27 1495.750546 8864 SETUP.exe [dgVoodoo] INFO: DirectDrawSurface (0E212970)::SetClipper: DirectDrawClipper 0DCEB828 is attached, replacing the old one.
28 1495.755201 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988)::CreateSurface: Plain offscreen is created, DirectDrawSurface (0DC90918).
29 1495.759174 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988)::CreateSurface: Plain offscreen is created, DirectDrawSurface (0DC74548).
30 1495.761205 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988)::CreateSurface: Plain offscreen is created, DirectDrawSurface (0DC21818).
31 1495.767752 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988)::CreateSurface: Plain offscreen is created, DirectDrawSurface (0DC27938).
32 1495.821358 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988)::CreateSurface: Plain offscreen is created, DirectDrawSurface (03AB3840).
33 1495.828899 8864 SETUP.exe [dgVoodoo] WARNING: DirectDrawSurface (0DC74548)::Lock: Failed, HRESULT: DDERR_SURFACEBUSY
34 1495.829688 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988)::CreateSurface: Plain offscreen is created, DirectDrawSurface (0DCB9BD8).
35 1495.836449 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988)::CreateSurface: Plain offscreen is created, DirectDrawSurface (0DEE7A48).
36 1495.842701 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988)::CreateSurface: Plain offscreen is created, DirectDrawSurface (03B43EA0).
37 1495.849189 8864 SETUP.exe [dgVoodoo] INFO: DirectDraw (006DF988)::CreateSurface: Plain offscreen is created, DirectDrawSurface (0DBF4520).
38 1495.871767 8864 SETUP.exe [dgVoodoo] WARNING: DirectDrawSurface (0E212970)::Blt/BltFast: Failed, HRESULT: DDERR_SURFACEBUSY
39 1495.875293 8864 SETUP.exe [dgVoodoo] WARNING: DirectDrawSurface (0E212970)::Blt/BltFast: Failed, HRESULT: DDERR_SURFACEBUSY
40 1495.891294 8864 SETUP.exe [dgVoodoo] WARNING: DirectDrawSurface (0E212970)::Blt/BltFast: Failed, HRESULT: DDERR_SURFACEBUSY
41 1495.907287 8864 SETUP.exe [dgVoodoo] WARNING: DirectDrawSurface (0E212970)::Blt/BltFast: Failed, HRESULT: DDERR_SURFACEBUSY
42 1495.964738 8864 SETUP.exe [dgVoodoo] WARNING: DirectDrawSurface (0E212970)::Blt/BltFast: Failed, HRESULT: DDERR_SURFACEBUSY
43 1495.987103 8864 SETUP.exe [dgVoodoo] WARNING: DirectDrawSurface (0E212970)::Blt/BltFast: Failed, HRESULT: DDERR_SURFACEBUSY
44 1496.324206 10592 WerFault.exe onecore\windows\feedback\core\wercommon\libex\usertokenutility.cpp(755)\wer.dll!63002C2E: (caller: 63000C95) LogHr(1) tid(2998) 80070005 Access is denied.
45 1496.324206 10592 WerFault.exe Msg:[No session users available.]
46 1496.383053 10592 WerFault.exe onecore\windows\feedback\core\wercommon\libex\usertokenutility.cpp(755)\wer.dll!63002C2E: (caller: 63000C95) LogHr(2) tid(2998) 80070005 Access is denied.
47 1496.383053 10592 WerFault.exe Msg:[No session users available.]
48 1496.404090 10592 WerFault.exe onecore\windows\feedback\core\wercommon\libex\usertokenutility.cpp(755)\wer.dll!63002C2E: (caller: 63000C95) LogHr(3) tid(2998) 80070005 Access is denied.
49 1496.404090 10592 WerFault.exe Msg:[No session users available.]
50 1496.458876 10592 WerFault.exe onecore\windows\feedback\core\wercommon\libex\usertokenutility.cpp(755)\wer.dll!63002C2E: (caller: 63000C95) LogHr(4) tid(3348) 80070005 Access is denied.
51 1496.458876 10592 WerFault.exe Msg:[No session users available.]
52 1496.481763 10592 WerFault.exe onecore\windows\feedback\core\wercommon\libex\usertokenutility.cpp(755)\wer.dll!63002C2E: (caller: 63000C95) LogHr(5) tid(2998) 80070005 Access is denied.
53 1496.481763 10592 WerFault.exe Msg:[No session users available.]
54 1496.488811 5532 explorer.exe onecore\base\appmodel\resourcepolicy\gameconfigstore\client\gameconfigstoreclient.cpp(104)\resourcepolicyclient.dll!00007FFDD4A1BA6C: (caller: 00007FFDBD1ABA76) LogHr(105) tid(1554) 80070490 Element not found.
55 1496.491352 5532 explorer.exe avcore\npsm\localprovider\baseprovider\lib\baseprovider.cpp(604)\NPSMDesktopProvider.dll!00007FFD9C4D39A4: (caller: 00007FFD9C4D4113) ReturnHr(653) tid(364) 80070490 Element not found.
56 1496.506409 10592 WerFault.exe onecore\windows\feedback\core\wercommon\libex\usertokenutility.cpp(755)\wer.dll!63002C2E: (caller: 63000C95) LogHr(6) tid(2998) 80070005 Access is denied.
57 1496.506409 10592 WerFault.exe Msg:[No session users available.]
58 1497.791093 10592 WerFault.exe onecore\windows\feedback\core\wercommon\libex\usertokenutility.cpp(755)\wer.dll!63002C2E: (caller: 63000C95) LogHr(7) tid(3194) 80070005 Access is denied.
59 1497.791093 10592 WerFault.exe Msg:[No session users available.]
60 1499.564437 10592 WerFault.exe onecore\windows\feedback\core\wercommon\libex\usertokenutility.cpp(755)\wer.dll!63002C2E: (caller: 63000C95) LogHr(8) tid(2998) 80070005 Access is denied.
61 1499.564437 10592 WerFault.exe Msg:[No session users available.]
62 1501.480952 5532 explorer.exe pcshell\shell\appresolver\lib\appresolver.cpp(1739)\appresolver.dll!00007FFDBF27FEF6: (caller: 00007FFDBF27CB4E) ReturnHr(1080) tid(15d8) 80004005 Unspecified error
63 1501.480952 5532 explorer.exe CallContext:[\AppResolver_GetAppIDForWindow\AppResolver_GetAppIDForProcess]
64 1501.489286 5532 explorer.exe avcore\npsm\localprovider\baseprovider\lib\baseprovider.cpp(604)\NPSMDesktopProvider.dll!00007FFD9C4D39A4: (caller: 00007FFD9C4D4113) ReturnHr(654) tid(364) 80070490 Element not found.
65 1501.642707 10592 WerFault.exe onecore\windows\feedback\core\wercommon\libex\usertokenutility.cpp(755)\wer.dll!63002C2E: (caller: 63000C95) LogHr(9) tid(2998) 80070005 Access is denied.
66 1501.642707 10592 WerFault.exe Msg:[No session users available.]
67 1501.661963 5532 explorer.exe pcshell\shell\appresolver\lib\appresolver.cpp(1739)\appresolver.dll!00007FFDBF27FEF6: (caller: 00007FFDBF27CB4E) ReturnHr(1081) tid(15d8) 80004005 Unspecified error
68 1501.661963 5532 explorer.exe CallContext:[\AppResolver_GetAppIDForWindow\AppResolver_GetAppIDForProcess]
69 1501.686329 8864 SETUP.exe [dgVoodoo] WARNING: DirectDrawSurface (0E212970)::Blt/BltFast: Failed, HRESULT: DDERR_SURFACEBUSY
Show last 6 lines
70	1501.756491	 5532	explorer.exe	avcore\npsm\localprovider\baseprovider\lib\baseprovider.cpp(604)\NPSMDesktopProvider.dll!00007FFD9C4D39A4: (caller: 00007FFD9C4D4113) ReturnHr(655) tid(364) 80070490 Element not found.
71 1501.780468 10592 WerFault.exe <process started at 21:27:13.842 has terminated with exit code 0>
72 1501.781375 8864 SETUP.exe <process started at 21:27:12.720 has terminated with 0xc0000005 (EXCEPTION_ACCESS_VIOLATION)>
73 1502.990226 5532 explorer.exe avcore\npsm\localprovider\baseprovider\lib\baseprovider.cpp(604)\NPSMDesktopProvider.dll!00007FFD9C4D39A4: (caller: 00007FFD9C4D4113) ReturnHr(656) tid(364) 80070490 Element not found.
74 1518.015612 0 [internal] <paused>

For bonus points, does anyone know if it is possible to make the installer run in Windowed mode by hex-editing it's EXE?

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

Reply 1 of 2, by XJDHDR

User metadata
Rank Newbie
Rank
Newbie

Just an addition to my last question: I know that a DirectDraw program is set to Fullscreen or Windowed mode by calling the SetCooperativeLevel method with an appropriate flag. My problem is that I have no idea where this method can be found in the setup program's code. If anyone can help me find this method, then thank you very much.

Edit: Also, Merry Christmas and Happy New Year to everyone.

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

Reply 2 of 2, by XJDHDR

User metadata
Rank Newbie
Rank
Newbie

Just made some progress with this. I found that there is a hidden switch in the setup program which forces Windowed mode. So I don't need dgVoodoo to force the program into Windowed mode anymore, I just need to run it with the "-w" argument. I am still having some problems though. I did these tests using both versions 2.55.3 and WIP50

Fullscreen: If I have dgVoodoo installed, I can't take screenshots of the Setup program's window. Instead, attempting to take a screenshot will take one of whatever is behind the Setup window. If I remove dgVoodoo, this problem goes away.

Windowed: The program has some glitches. For reference, this is what it looks like in Fullscreen and what it's supposed to look like:

Emperor Setup - Working.png
Filename
Emperor Setup - Working.png
File size
311.62 KiB
Views
1379 views
File license
Fair use/fair dealing exception

This is what it looks like when I use the Windowed mode switch with and without dgVoodoo:

Emperor Setup - Broken - Initializing.png
Filename
Emperor Setup - Broken - Initializing.png
File size
979.37 KiB
Views
1379 views
File license
Fair use/fair dealing exception
Emperor Setup - Broken - Welcome.png
Filename
Emperor Setup - Broken - Welcome.png
File size
1.02 MiB
Views
1379 views
File license
Fair use/fair dealing exception

Besides what the windows look like, the window is stuck to the upper-left corner of the screen and has further problems if your taskbar is on the left side of the screen and not hidden. The window's graphics are still rendered under the taskbar but the buttons' clickable areas are pushed to the side by whatever your taskbar's width is.

I'm hoping that dgVoodoo can help with this problem. I am using Windows 10 Pro x64 and the default, unmodified config files.

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