Warhammer 40k Dawn of War II - Retribution Ver. 3.19.1.50, GOG SDK Ver. 1.148.3 #3

Open
opened 2026-02-28 13:55:44 -05:00 by yindo · 10 comments
Owner

Originally created by @OddProgramming on GitHub (Jun 16, 2024).

  • Game launches, UniverseLAN states EventConnect with KeyChallengeMessage ACCEPT (locally to my machine connection) but in-game states connection to GOG Galaxy is lost when attempting to create a match, also states Not Logged Into Galaxy when hovering over Username.
  • UniverseLAN config name does correctly show. Last Stand is greyed out (requires Galaxy to play). Same issue for both 64 and non-64 UniverseLAN Servers.
  • Game default installs with Galaxy.dll not Galaxy64.dll
Originally created by @OddProgramming on GitHub (Jun 16, 2024). - Game launches, UniverseLAN states EventConnect with KeyChallengeMessage ACCEPT (locally to my machine connection) but in-game states connection to GOG Galaxy is lost when attempting to create a match, also states Not Logged Into Galaxy when hovering over Username. - UniverseLAN config name does correctly show. Last Stand is greyed out (requires Galaxy to play). Same issue for both 64 and non-64 UniverseLAN Servers. - Game default installs with Galaxy.dll not Galaxy64.dll
Author
Owner

@grasmanek94 commented on GitHub (Jun 17, 2024):

I have confirmed your issue. I'll investigate when I'll have time (that might take a few weeks, or more than a month).

One way I debug such issues, if you have C++ development experience:

  1. When creating the CMake project I also create the interceptor project:
rd /S /Q cmake-x86
mkdir cmake-x86
cmake -A Win32 -B cmake-x86 -D LIMIT_VERSIONS="1.148.3" -D BUILD_INTERCEPTOR=1 -D BUILD_TEST_CASES=1
pause
  1. In this case I would rename the original Galaxy.dll to RealGalaxy.dll
  2. After compilation, place GalaxyInterceptor.dll in the game directory, and rename that to Galaxy.dll
  3. Copy the config from https://github.com/grasmanek94/UniverseLAN/blob/master/ConfigDebug/ into the gamedirectory
  4. Set OverrideInitKeys = 0 and OverrideSignIn = 0 in UniverseLANData/Config.ini
  5. Run the game once, create a lobby, exit the game
  6. Replace RealGalaxy.dll with UniverseLAN Galaxy.dll (and of course keep it named RealGalaxy.dll)
  7. Run the game again and try to host a lobby (this will fail of course, due to not signed in error)
  8. Exit the game

This will have produced two new directories in UniverseLANData/Interceptor/Tracing, each containing log files.

Uploading these might make analysis easier - the behaviour of real Galaxy and UniverseLAN can be compared this way.

For your convenience (or if you can't build interceptor, no C++ experience or no build system), and if you have the time / possibility to help, I have attached a debug build of GalaxyInterceptor:

interceptor-1.139.2-1.148.3.zip

I have also included the relevant version for your other report: https://github.com/grasmanek94/UniverseLAN/issues/4

A bit more background: GalaxyInterceptor is a separate project that will sit between a compatible Galaxy SDK library (either Real GalaxySDK or UniverseLAN), and log all (configured, using CallTracingFlags) calls to log files in the 'Interceptor' directory. Using GalaxyInterceptor might create huge files (kbytes sometimes Mbytes per second) and will degrade game performance. It's adviced to use only for very short periods of pure debugging, not normal gaming activities.

@grasmanek94 commented on GitHub (Jun 17, 2024): I have confirmed your issue. I'll investigate when I'll have time (that might take a few weeks, or more than a month). One way I debug such issues, if you have C++ development experience: 1. When creating the CMake project I also create the interceptor project: ``` rd /S /Q cmake-x86 mkdir cmake-x86 cmake -A Win32 -B cmake-x86 -D LIMIT_VERSIONS="1.148.3" -D BUILD_INTERCEPTOR=1 -D BUILD_TEST_CASES=1 pause ``` 2. In this case I would rename the original Galaxy.dll to RealGalaxy.dll 3. After compilation, place GalaxyInterceptor.dll in the game directory, and rename that to Galaxy.dll 4. Copy the config from https://github.com/grasmanek94/UniverseLAN/blob/master/ConfigDebug/ into the gamedirectory 5. Set `OverrideInitKeys = 0` and `OverrideSignIn = 0` in UniverseLANData/Config.ini 6. Run the game once, create a lobby, exit the game 7. Replace RealGalaxy.dll with UniverseLAN Galaxy.dll (and of course keep it named RealGalaxy.dll) 8. Run the game again and try to host a lobby (this will fail of course, due to not signed in error) 9. Exit the game This will have produced two new directories in UniverseLANData/Interceptor/Tracing, each containing log files. Uploading these might make analysis easier - the behaviour of real Galaxy and UniverseLAN can be compared this way. For your convenience (or if you can't build interceptor, no C++ experience or no build system), and if you have the time / possibility to help, I have attached a debug build of GalaxyInterceptor: [interceptor-1.139.2-1.148.3.zip](https://github.com/user-attachments/files/15863961/interceptor-1.139.2-1.148.3.zip) I have also included the relevant version for your other report: https://github.com/grasmanek94/UniverseLAN/issues/4 A bit more background: GalaxyInterceptor is a separate project that will sit between a compatible Galaxy SDK library (either Real GalaxySDK or UniverseLAN), and log all (configured, using `CallTracingFlags`) calls to log files in the 'Interceptor' directory. Using GalaxyInterceptor might create huge files (kbytes sometimes Mbytes per second) and will degrade game performance. It's adviced to use only for very short periods of pure debugging, not normal gaming activities.
Author
Owner

@OddProgramming commented on GitHub (Oct 13, 2024):

Hello! Sorry it's been some time, so, I was able to get it working, here's a link to the .zip with the folders in it: https://drive.google.com/file/d/12LNLO_QDzXWgE9sTeyiKICR5OfUc3kkC/view?usp=sharing

@OddProgramming commented on GitHub (Oct 13, 2024): Hello! Sorry it's been some time, so, I was able to get it working, here's a link to the .zip with the folders in it: https://drive.google.com/file/d/12LNLO_QDzXWgE9sTeyiKICR5OfUc3kkC/view?usp=sharing
Author
Owner

@OddProgramming commented on GitHub (Oct 13, 2024):

I also realized I think I need confirmation, should the "RealGalaxy.dll" actually be named RealGalaxy.dll? Is this important to the Interceptor functionality, or is this just for keeping track of which .dll is which?
If so I will likely need to redo this test.

@OddProgramming commented on GitHub (Oct 13, 2024): I also realized I think I need confirmation, should the "RealGalaxy.dll" actually be named RealGalaxy.dll? Is this important to the Interceptor functionality, or is this just for keeping track of which .dll is which? If so I will likely need to redo this test.
Author
Owner

@grasmanek94 commented on GitHub (Oct 21, 2024):

I also realized I think I need confirmation, should the "RealGalaxy.dll" actually be named RealGalaxy.dll? Is this important to the Interceptor functionality, or is this just for keeping track of which .dll is which? If so I will likely need to redo this test.

The Interceptor .dll (which must be named Galaxy.dll) will load "RealGalaxy.dll", so this is purely functional, not for backing up files or cosmetic.

I quickly checked the log files and I don't see many differences between them. Could it perhaps be that both runs used the same RealGalaxy.dll file? I expected one log file is using UniverseLAN (RealGalaxy.dll) and the other is using Galaxy (also then named RealGalaxy.dll)?

I think I should add logging for which hash of the dll is loaded.. 😅

Thanks for your time and trying to help!

@grasmanek94 commented on GitHub (Oct 21, 2024): > I also realized I think I need confirmation, should the "RealGalaxy.dll" actually be named RealGalaxy.dll? Is this important to the Interceptor functionality, or is this just for keeping track of which .dll is which? If so I will likely need to redo this test. The Interceptor .dll (which must be named Galaxy.dll) will load "RealGalaxy.dll", so this is purely functional, not for backing up files or cosmetic. I quickly checked the log files and I don't see many differences between them. Could it perhaps be that both runs used the same RealGalaxy.dll file? I expected one log file is using UniverseLAN (RealGalaxy.dll) and the other is using Galaxy (also then named RealGalaxy.dll)? I think I should add logging for which hash of the dll is loaded.. 😅 Thanks for your time and trying to help!
Author
Owner

@OddProgramming commented on GitHub (Oct 21, 2024):

I seem to have messed up with the interceptor and naming, I'll do a fresh retry of it and provide the logs shortly.

@OddProgramming commented on GitHub (Oct 21, 2024): I seem to have messed up with the interceptor and naming, I'll do a fresh retry of it and provide the logs shortly.
Author
Owner

@OddProgramming commented on GitHub (Oct 21, 2024):

When trying to launch the game via RealGalaxy.dll (UniverseLAN's Galaxy.dll) and the Interceptor, the game does not launch, it shows a connection accepted by server, but does not launch. I've tried combinations of UniverseLAN's files and the Master branch ConfigDebug files and it won't launch.

When copying the config from the ConfigDebug folder, am I ONLY copying the Config.ini from the UniverseLAN-master/ConfigDebug/UniverseLANData folder? Or should I be copying over the entire ConfigDebug folder?

Here is the trace logs for the failed launch and the Interceptor with RealGalaxy.dll (The official Galaxy.dll)
https://drive.google.com/drive/folders/1Q-EtFzd4MoeYj8TFFqdyPKFa2sPyjn0r?usp=sharing

@OddProgramming commented on GitHub (Oct 21, 2024): When trying to launch the game via RealGalaxy.dll (UniverseLAN's Galaxy.dll) and the Interceptor, the game does not launch, it shows a connection accepted by server, but does not launch. I've tried combinations of UniverseLAN's files and the Master branch ConfigDebug files and it won't launch. When copying the config from the ConfigDebug folder, am I ONLY copying the Config.ini from the UniverseLAN-master/ConfigDebug/UniverseLANData folder? Or should I be copying over the entire ConfigDebug folder? Here is the trace logs for the failed launch and the Interceptor with RealGalaxy.dll (The official Galaxy.dll) [https://drive.google.com/drive/folders/1Q-EtFzd4MoeYj8TFFqdyPKFa2sPyjn0r?usp=sharing](url)
Author
Owner

@grasmanek94 commented on GitHub (Nov 29, 2024):

Hey @OddPrograms , I'm investigating this and I have one question; can you confirm that multiplayer works on normal GOG/through Galaxy?

Edit: Yes it seems to work, I have confirmed it myself.
I'll continue investigation next week.

@grasmanek94 commented on GitHub (Nov 29, 2024): Hey @OddPrograms , I'm investigating this and I have one question; can you confirm that multiplayer works on normal GOG/through Galaxy? Edit: Yes it seems to work, I have confirmed it myself. I'll continue investigation next week.
Author
Owner

@grasmanek94 commented on GitHub (Dec 3, 2024):

So, DoW2 seems to use a completely different mechanism than what all other games use, somehow they chose to directly interface with the GoG Galaxy Service instead of letting the GoG Galaxy API / dll handle it.
Impressive... but that's not supported by UniverseLAN (yet)..
This won't be a simple fix but a complete addition akin to comet.

If that's not the case then maybe it's using something more sophisticated (like connecting to another backend) via GOG Galaxy Authentication Tickets.. which will be difficult to fix but also not impossible.

@grasmanek94 commented on GitHub (Dec 3, 2024): So, DoW2 seems to use a completely different mechanism than what all other games use, somehow they chose to directly interface with the GoG Galaxy Service instead of letting the GoG Galaxy API / dll handle it. Impressive... but that's not supported by UniverseLAN (yet).. This won't be a simple fix but a complete addition akin to [comet](https://github.com/imLinguin/comet). If that's not the case then maybe it's using something more sophisticated (like connecting to another backend) via GOG Galaxy Authentication Tickets.. which will be difficult to fix but also not impossible.
Author
Owner

@apricot79 commented on GitHub (Mar 6, 2025):

Just curious if there is an update on this, was trying to get 40k DoWII working when I stumbled on this project.

Love this project by the way. As a linux user relying on Gog offline installers, this is a godsend to me. By the way, another compatible Game is Sniper Elite V2 Remaster (1.133.6.0) tested with build 487, just in case you'd like to know.

@apricot79 commented on GitHub (Mar 6, 2025): Just curious if there is an update on this, was trying to get 40k DoWII working when I stumbled on this project. Love this project by the way. As a linux user relying on Gog offline installers, this is a godsend to me. By the way, another compatible Game is Sniper Elite V2 Remaster (1.133.6.0) tested with build 487, just in case you'd like to know.
Author
Owner

@grasmanek94 commented on GitHub (Mar 10, 2025):

Just curious if there is an update on this, was trying to get 40k DoWII working when I stumbled on this project.

I'm not working on support for this game for now, it will require adding completely new / standalone features just for this game (at least, that's what I expect). It's another big undertaking (just as big as UniverseLAN itself maybe). Sounds like a fun challenge when I have some more time :)

I'm leaving this open specifically due to the fact that supporting this game is possible in theory.

Love this project by the way. As a linux user relying on Gog offline installers, this is a godsend to me. By the way, another compatible Game is Sniper Elite V2 Remaster (1.133.6.0) tested with build 487, just in case you'd like to know.

Thanks! You're welcome, I've added SE V2 :)

@grasmanek94 commented on GitHub (Mar 10, 2025): > Just curious if there is an update on this, was trying to get 40k DoWII working when I stumbled on this project. I'm not working on support for this game for now, it will require adding completely new / standalone features just for this game (at least, that's what I expect). It's another big undertaking (just as big as UniverseLAN itself maybe). Sounds like a fun challenge when I have some more time :) I'm leaving this open specifically due to the fact that supporting this game is possible in theory. > Love this project by the way. As a linux user relying on Gog offline installers, this is a godsend to me. By the way, another compatible Game is Sniper Elite V2 Remaster (1.133.6.0) tested with build 487, just in case you'd like to know. Thanks! You're welcome, I've added SE V2 :)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: yindo/UniverseLAN#3