grasmanek94 / UniverseLAN

UniverseLAN is a GOG Galaxy wrapper which allows LAN / Direct IP connections for games using Galaxy Multiplayer
MIT License
25 stars 0 forks source link

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

Open OddPrograms opened 3 weeks ago

OddPrograms commented 3 weeks ago
grasmanek94 commented 3 weeks ago

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.