Back to the main site

How to launch games through GOG Galaxy?

I want to enable Achievements on Divinity 2. I would like to know if it’s even possible to launch Divinity 2 via the Galaxy Client?
Every time I try to open Divinity 2 via the launcher it does not launch the game at all. I did some reading and discovered this command: “mv ./bin ./bin.bak && ln -s DefEd/bin bin && cd bin && mv ./SupportTool.exe ./SupportTool.bak && ln -s EoCApp.exe SupportTool.exe”
The game then launches through GOG, but all I see is a black screen with a cursor. Nothing else.

The game works perfectly via Lutris. I get rock solid 40 fps on 1440p and 60fps on 1080p after some tweaks. Which is even better than on Windows, surprisingly. I have used one of the scripts on the website to install the game, and everything went pretty smoothly. Unfortunately the GOG client does not recognise Divinity 2 in the background.

Am I missing something here?

BUMP

Is this not possible? I’ve read some reports that achievements are working.

Do you mean Divinity Original Sin 2? Divinity II has no install scripts on Lutris (it’s not even marked as published in search yet).

As for your question – in theory, yes, it should be possible to run any Windows game runnable through Lutris via GOG client, you just need to have the same adjustments applied to the wineprefix and runner config – either make them (and install the game) in the GOG prefix, or try to install/run GOG client in the game prefix.

The install scripts exist mainly for the reason that each game potentially requires some adjustments (to the wineprefix, to run environment, or both). In the Original Sin 2 install script for GOG version, the adjustments are described like this:

system:
  env:
    DXVK_HUD: compiler
wine:
  dxvk: true
  overrides:
    xaudio2_7: native

If I’m not mistaken, that means “add xaudio2_7: native DLL override in Wine runner options, enable DXVK, and add DXVK_HUD=compiler env variable”.
Note that if GOG client also requires adjustments, and they conflict with the game, you probably won’t be able to do much about it.

It shouldn’t be able to, even if it has such a feature, if they’re not running in the same wineprefix.

Yup, Divinity Original Sin 2 is what I meant. I wasn’t aware there was a Divinity II.
The GOG scripts seem to require esync, which I also enabled in the game.
How do I install the GOG client in the game prefix? Do I simply choose the game directory during the install process?

Thank you.

Unfortunately, selecting an existing wineprefix is not supported in the Lutris installation process. What you have to do is get the GOG client installer executable (from Lutris cache directory or download in browser using the link from the install script) and run it in the wineprefix of the game (there is an option like that in Lutris client). Then, to run that particular instance of GOG client, you need to change the wineprefix/executable path in your old GOG client link to the one your game uses (in case of executable the path needs to point to the new GOG client executable, of course), or to make a duplicate link with such changes.

So I managed to follow you up until:

Then, to run that particular instance of GOG client, you need to change the wineprefix/executable path in your old GOG client link to the one your game uses (in case of executable the path needs to point to the new GOG client executable, of course), or to make a duplicate link with such changes.

I choose “Run EXE inside Wine prefix” and installed one of the GOG clients from the script’s link. That GOG client I just installed does not appear in Lutris, I assume it’s because it’s in the same working environment as DOS2. How do I proceed from here?

It doesn’t appear in Lutris because Lutris only creates new links after running an install script. Thus, you either need to add one manually (copying whatever settings you have in existing GOG client link but with paths changed to new wineprefix), or to modify either of existing links (game or GOG client) if you don’t care about keeping them.

I added it manually however the game is still not starting from the client.
I should mention I installed the game via one of the scripts, not through the GOG client as it had many problems finishing the installation process. Inside the client itself I import the game folder. The client does recognize the game as installed though.

When I try to open the game this is the error I see in the logs:

The entry point method could not be loaded due to Could not load file or assembly ‘PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ or one of its dependencies.
Waiting on children
2020-03-11 12:06:51,446: Unable to read stat for process 4888
2020-03-11 12:06:51,446: Unable to read stat for process 4888
Waiting on children

Does your new link retain the game-specific settings?

I’m not sure what you mean by that.
Also, I managed to install some very old games through the Galaxy client. They seem to be working and are launching through the client.

I mean this

It wasn’t. I changed it manually but it did not solve the issue.

I tried to install the game on my own machine to see if I can reproduce the issue… Man did it take long time (I’d say 50Gb is way too much for a game installer…)

First I looked at the downloads size and decided to install the game via GOG client. It took half a day for it to download… Then it failed at the end, complaining about lack of dotnet-3.0 so I quit the client, and used Winetricks to install it (marked 3.0 and 4.5 just in case). The download status was still there but it still said something about requiring admin rights to install dotnet, and failed in the end. Then, I tried to run the game downloaded by client (using “Run EXE inside wine prefix”) and it ran with no problem (though I didn’t try to go past main menu).

Still, the install was failing, so I decided to install it separately and just import it into the client. I ran the install script, and after another half-a-day wait… it installed nothing! Turns out Lutris decided to download the files weirdly (naming them gog_file_*/download instead of .exe, .bin, and .xml files – the latter described the correct filename and checksum for the next .exe/.bin) and thus couldn’t run the setup. So I renamed the install files (keeping the old locations as symlinks so that install doesn’t fail again), and ran it directly in the game prefix (“Run EXE inside wine prefix”). After that, the game link worked alright, so I switched to the GOG client link, added game prefix folder as a logical drive (in the Wine configuration → Drives tab), and imported it into GOG client. And then, the game started up alright from the client (the only difference was, it gave me a few dialog windows before running the logo).

I didn’t bother with the DXVK stuff back then. When I added it (I also added xaudio2_7: native via Wine config, so that I could specify the executable it applies to), the dialog window became quite glitchy, but the game seemed to run alright. Trying to start actual game led to the load hanging up, however… And after I checked it, it happened in the GOG client prefix, but not in the game prefix. So then I ran the GOG client installer (from Lutris cache) in the game prefix, and after enduring the log process of library syncing I imported the game there… and got the exact same problem: character creation screen stopped loading in the game, even if I ran it without starting up the GOG client (from which, incidentally, the game simply refused to run). Turns out, if the game is even merely run from a prefix with the GOG client installed, it’ll be trying to connect with it (runnig GalaxyCommunication service), which apparently slows down load times to infinity…

So in the end, I didn’t get the problem that you have, but I got a bunch of others which seem to completely prevent me from playing this game with GOG client.

1 Like

Hmm. This is interesting. If you disable cloud sync and just keep the overlay do you still face the same problem?
The game itself loads fine via Lutris, if I didn’t know better I’d say the game was native because I was playing for a few hours without any problems whatsoever.
I also own a copy of the game on Steam but most of my progress and achievements are on the GOG client. It’s a shame GOG does not provide Linux support, yet still sells native Linux games through their store. A couple of years ago if anyone would ask me who would support Linux first, I’d say GOG first, and Steam last.

The last test I did was installing GOG client on the clean game prefix (with game working), starting it up to ensure it initialized properly, killing all Wine processes, and trying to run the game without touching the GOG client. And, as I mentioned in the last post, the result was the same: new game loading process was stuck at 0%, and Q4Wine process manager showed GalaxyCommunication running (thus, it clearly was started by the game itself, even though GOG client wasn’t even aware of the game having been installed).

GOG has less developer resources (without having a particular interest in Linux over Windows or Mac), and Linux gaming has kept gaining new numbers for years now – not in the least because it’s been directly promoted by Valve, as their prized SteamOS is, in fact, a Linux distribution, and they’re clearly interested in it supporting as many games from their platform as possible. If it’s the percentage of native-running videogames, GOG is likely ahead of Steam, but that’s because they both sell games developed by others (not counting several titles developed by their respective owner companies), and GOG is banking on quality rather than quantity, which somewhat “alienates” a large mass of low-grade developers who don’t make Linux versions of their games because they either never heard of it or aren’t aware it may bring more profit than the effort it took (I’m not saying many large developers don’t share these views, but most developers who don’t, tend to make somewhat decent games at the very least).

1 Like

Many thanks for the effort.
As a side note, do all games support Esync? I have also installed the GOG versions of Dishonored and Vampyr (which is still poorly optimized it seems). Dishonored runs better with Esync enabled but also crashes quite fast after 10 minutes or so. Without it, it runs without any issues on 80-100FPS.
I’m left to assume the title does not support it?

BTW, DOS2 is a great game. You should check it out if you’re into turn-based games.

Esync is not a game feature, it’s a Wine feature (more specifically, it’s a Wine optimization that allows Windows process threads – subprocesses ran by process cores in parallel – interact faster by moving the main communication center from the Wine server into the program itself, more or less, which means less distance to cover for every “message”, essentially). The reason why some games crash with Esync enabled is because, like any software (and especially so the highly-optimized ones), the Esync implementation has bugs (a bugless program can only be written by a perfect human…); and if the game relies on the thread communication strongly, it’s likely to be very sensitive to bugs in that mechanism. (Also, games themselves may have bugs which Windows forgives but Esync can’t; like trying to access an interaction that was closed already and should’ve been removed by then.) The reason why some games have no problem with Esync at all (and possibly unaffected by it) is that they’re either not multithreaded in the first place, or that whichever bugs Esync has do not affect it.

In the end, much like any other optimisation, it’s a gamble of whether it makes the game work better, breaks it, or needs a very specific Wine version for it to work the way you want it to.

My backlog is huge and keeps growing, with like a dozen games in “playing, mostly” status, and much more waiting on the line. So… eventually, I guess :smiley:
(Proper RPGs are actually my favorite genre, but it also takes a lot of time to complete one…)