Menu

Total Annihilation works with an older version of DXWnd but not a newer one?

babbymode
2020-07-09
2020-07-16
  • babbymode

    babbymode - 2020-07-09

    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
    • gho

      gho - 2020-07-10

      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.

       
  • babbymode

    babbymode - 2020-07-10

    here's the logs of both the mod and the original game at 2.05.51 and the mod at 2.04.31

     
  • gho

    gho - 2020-07-12

    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.

     
  • gho

    gho - 2020-07-12

    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.

    CPU Stack
    Address   Value      Comments
    000A3024  \004AB0DA  /RETURN from TotalA_ddraw.004AB0B0 to TotalA_ddraw.004AB0DA
    000A3028  /2EE0C200  |Arg1 = 2EE0C200
    000A302C  |0019FA98  |Arg2 = 19FA98
    000A3030  |02AF07EC  \Arg3 = 2AF07EC
    000A3034  |02AF07EC  
    000A3038  |0019FA98  
    000A303C  |00000180  
    000A3040  |3190B018  
    000A3044  |00000000
    000A3048  |00000000
    000A304C  |00000000
    000A3050  |00000000
    000A3054  \004AB0DA  /RETURN from TotalA_ddraw.004AB0B0 to TotalA_ddraw.004AB0DA
    000A3058  /2ED2E508  |Arg1 = 2ED2E508
    000A305C  |0019FA98  ˜|Arg2 = 19FA98
    000A3060  |02AF07EC  \Arg3 = 2AF07EC
    000A3064  |02AF07EC  
    000A3068  |0019FA98  ˜
    000A306C  |00000180  
    000A3070  |31DB7CB0  
    000A3074  |00000000
    000A3078  |00000000
    000A307C  |00000000
    000A3080  |00000000
    000A3084  \004AB0DA  /RETURN from TotalA_ddraw.004AB0B0 to TotalA_ddraw.004AB0DA
    000A3088  /3190B018  |Arg1 = 3190B018
    000A308C  |0019FA98  |Arg2 = 19FA98
    000A3090  |02AF07EC  \Arg3 = 2AF07EC
    000A3094  |02AF07EC  
    000A3098  |0019FA98  ˜
    000A309C  |00000180  
    000A30A0  |324F15D0  
    000A30A4  |00000000
    000A30A8  |00000000
    000A30AC  |00000000
    000A30B0  |00000000
    000A30B4  \004AB0DA  /RETURN from TotalA_ddraw.004AB0B0 to TotalA_ddraw.004AB0DA
    ...
    

    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
    • babbymode

      babbymode - 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.

      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?

      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

      "BTW in single player mode the "New Campaign" menu selection was disabled. Is this ok? I think it's not."

      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
  • gho

    gho - 2020-07-13

    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".

     
    • babbymode

      babbymode - 2020-07-16

      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
  • babbymode

    babbymode - 2020-07-16

    https://youtu.be/xYwq4v5_ZZ8

    Recorded some footage, able to play full games with no errors or problems.

     
    • gho

      gho - 2020-07-16

      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:

      • the spash screen is visible (if not disabled)
      • the status panel (View -> Status menu command) should show informations about the game
      • if enabled, there should be a log file dxwnd.log
      • if window mode set, the game should start in a window

      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.

       
      • babbymode

        babbymode - 2020-07-16

        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.

         
        • gho

          gho - 2020-07-16

          Well, it is shows, then the game is hooked. I'll check better.

           
  • babbymode

    babbymode - 2020-07-16

    here's a screen cap in a 1280x720 window with status

    here's a screencap of the dxwnd splash screen

     
    • dippy dipper

      dippy dipper - 2020-07-16

      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/

       
  • gho

    gho - 2020-07-16

    There is always something odd ... the status panel tells the following:

    Screen = (0x0) Color BPP=0
    Fullscreen = NO
    DX Version = 0
    

    This, for a game configuration with EMULATESURFACE flag is peculiar, it is as if DxWnd didn't make its duty to a full extent.

     
  • gho

    gho - 2020-07-16

    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

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.