Total Annihilation works with an older version of DXWnd but not a newer one?
Window hooker to run fullscreen programs in window and much more...
Status: Beta
Brought to you by:
ghotik
EDIT: Major Bonehead move - I realized that I was trying to run Total Annihilation: Escalation, which is a mod for Total Annihilation, the original TA works just fine on the newer versions, but for some spooky reason, the compatibility between the MOD and DXWnd is trashed, and the ghosts in my computer have an aneurysm when running it. Which makes me even MORE confused, seeing as the previous version of DXWnd works flawlessly on that AND the original TA, but the new version is working fine on the original but NOT the mod.
Superficially, this is not that much of a problem, as I can just keep trucking along using the old dxwnd version. BUT, somewhere along the line, between 2.04.31 and 2.05.51 (my current 'up to date' version of DXWnd), compatibility for Total Annihilation: Escalation has been completely buggered. which is frustrating because I have been attempting to experiment with various settings on the newer version, and how they effect the game's performance and stability. I realized this when I figured it'd be no big deal to import the profile from that older preset into the newer version of DXWnd, which proved me incredulously wrong. I suppose I could try to figure out when the change occurred but before I go looking into it I thought I'd make a thread to poke the hornet's nest and see what other people may have dealt with. I've tried pretty much everything that makes sense to try, without spending hours of trial and error of ticking boxes (swapping renderer, common ddraw fixes, etc).
IF anyone does happen to know how, when, or why it no longer works, it'd be greatly appreciated.
Last edit: babbymode 2020-07-09
I was about to install the gaame again on my computer and have a look, but if the problem comes only with mods that would be useless.
You should try to grab some logs and share them with me, that would probably help more.
The easiest way should be this:
1) temporarily disable the "Expert mode" if you enabled it
2) Use the "File -> Run (autolog mode)" command to make some logs
3) following the directions, grab the dxwnd.log file and post it here.
here's the logs of both the mod and the original game at 2.05.51 and the mod at 2.04.31
Very curious: taesc 2.05.51.txt shows a repetition of the log about the SetClipList method, as if it entered in a recursion loop or as if the directdraw hooks went gone or some other weird reason.
I'll try to replicate the problem on my computer, I fear there's no better way to fix it.
I tried to follow the steps as close as possible:
1) I grabbed GOG game release form "Total Annihilation: Commander Pack".
2) I tried it without and with DxWnd, the game seems working (I didn't spend too much time doing that)
3) I downloaded the "Total Annihilation: Escalation" patch last release TAESC_GOLD_9_3_0.rar
4) from that file I read step 1 (the readme) and only applied step 3 (main files)
5) running the game with DxWnd didn't go in window mode. A quick inspection of the executable TotalA.exe showed that the reference to ddraw.dll was redirected to edraw.dll, so DxWnd doesn't intercept it and fails hooking all ddraw calls.
6) Just to complete the test, I unpatched that part of assembly recovering the reference to ddraw.dll. The game starts, but in single player / skirmish mode, as soon as you click on a unit, the game hungs. This happens both with and without DxWnd, so I presume it's not my fault...
7) Just to complete the test, I tried also the non unpatched TotalA.exe (the file that comes with the ESC patch) and the same problem happens again.
8) I run the game with a debugger, and the crash seems caused by a stack overflow because of a call recursion, with TotalA.004AB0B0 calling itself forever. In the stack trace here the module name is TotalA_ddraw because TotalA_ddraw.exe is the renamed & un-patched game that I used, but the same thing happens in all cases.
BTW in single player mode the "New Campaign" menu selection was disabled. Is this ok? I think it's not.
In conclusion, it seems to me that the ESC patch has problems that go far beyond the DxWnd control. Should I use an older patch version? Or start with a non-GOG CD version?
in attach the configuration used for the GOG game release.
Last edit: gho 2020-07-12
Very interesting. I should do the same with cheat engine and use the runtime debug with a breakpoint on a previously called function before it overflows, see if I catch any weirdness that might have led into the crash.
Yes that is the correct version of TAESC I used, with the GOG pack. And I used the version of DXWnd posted here in this forum some years ago, which works perfectly still: https://www.tauniverse.com/forum/showthread.php?t=45833
Yeah it is fine, they temporarily disabled campaign mode before their big "1.0" release as they work on issues with it that emerged.
Last edit: babbymode 2020-07-12
There are several things that I don't understand.
The first doubt is how could DxWnd work if the system ddraw.dll is renamed as edraw.dll? This is made by all ESC patches I analyzed, and in effect the GOG game gets hooked by DxWnd, while after the ESC patch application it no longer works.
Another problem is the pathname in the path field. This pathname should match the full game path or the path ending when using the '*' wildcard. So, a working configuration for the DXWND setup is the one in the picture, where "..\TotalA.exe" was replaced by "*\TotalA.exe".
is it not working for you at all?
Here's an exact outline of what I did for my install:
)
- Install GOG Commander Pack to X:\TotalA\Total Annihilation
- Copy install to X:\TotalA\TAESC
- Install TAESC_GOLD_9_3_0.rar to X:\TotalA\TAESC
- Did all 5 steps (It even says not to use DXWnd on step 4 but for some reason the game only works for me with it.)
- Dragged this dxwnd version out onto the directory: https://www.tauniverse.com/forum/attachment.php?attachmentid=36354&d=1561546844
(File structure should look like this
- ran TAESC through the dxwnd version in the same folder(obviously made sure that the file path was correct)
Last edit: babbymode 2020-07-16
https://youtu.be/xYwq4v5_ZZ8
Recorded some footage, able to play full games with no errors or problems.
Uhm, I see, but the game doesn't start in window and there's no trace of the DxWnd splash intro. It is pretty much what I got. I start to think that this DxWnd configuration is just bypassing DxWnd, that is used in practice as a launcher and nothing else!
Of course, it's possible that for some fortunate circumstance DxWnd as a launcher could make the game working, but in this case I can just look and do no more.
To be sure about that, you could check several sympthoms: if DxWnd hooks the game (and does its job) one of the following should be true:
Can you see anything of the sort?
P.s. BTW that could also explain the compatibility problem: in recent DxWnd versions I changed the launch logic just a little bit, but enough to change the argument line and possibly make some trouble.
actually, the splash screen came up but it didnt show up in the recording for some reason. I was using OBS Display Capture, I can change the window into any other resolution.
Well, it is shows, then the game is hooked. I'll check better.
here's a screen cap in a 1280x720 window with status


here's a screencap of the dxwnd splash screen
If it works with DxWnd 2.04.31 you could try testing the newer version from the repository to find out exactly which Dxwnd version breaks the game:
https://sourceforge.net/projects/dxwnd/files/Latest%20build/
There is always something odd ... the status panel tells the following:
This, for a game configuration with EMULATESURFACE flag is peculiar, it is as if DxWnd didn't make its duty to a full extent.
Another problem is that I don't think I can see this incompatibility thing: on my portable the game configured according the instructions (with the only change in the wildcarded path, as explained above) works very well. Look at this screenshot taken at 1920x1080 resolution and OpenGL renderer with HW support for bilinear filtering. It works ...
and on the second screenshot, the status panel giving informations about the game.
Last edit: gho 2020-07-16