Emperor: Battle for Dune's Setup.exe - Crash when attempting to force Windowed mode

General information and assistance with dgVoodoo.

Emperor: Battle for Dune's Setup.exe - Crash when attempting to force Windowed mode

Postby XJDHDR » 2018-9-22 @ 10:27

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)
Code: Select all
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
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?
XJDHDR
Newbie
 
Posts: 23
Joined: 2015-5-17 @ 16:37

Re: Emperor: Battle for Dune's Setup.exe - Crash when attempting to force Windowed mode

Postby XJDHDR » 2019-1-05 @ 17:38

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.
XJDHDR
Newbie
 
Posts: 23
Joined: 2015-5-17 @ 16:37

Re: Emperor: Battle for Dune's Setup.exe - Crash when attempting to force Windowed mode

Postby XJDHDR » 2019-1-06 @ 00:24

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


This is what it looks like when I use the Windowed mode switch with and without dgVoodoo:
Emperor Setup - Broken - Initializing.png
Emperor Setup - Broken - Welcome.png

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.
XJDHDR
Newbie
 
Posts: 23
Joined: 2015-5-17 @ 16:37


Return to dgVoodoo General

Who is online

Users browsing this forum: No registered users and 2 guests