It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
high rated
avatar
EverNightX: Bingo. The DEVS choose how the program works. It is totally in their power to deal with it. They chose not to. All the rest is just noise.
You're arguing the wrong argument. Try reading how it actually works on GOG's own developer documentation page. The "hanging" timeout issue is caused by and is internal to GOG's wrapper (that's needed precisely because the 'GOG' version is the Steam version with all SteamWorksAPI calls and Steam Achievements still intact and that game needs to see a fake Steam client running. The game can't "just start anyway because of multi-threading or something" until after the wrapper has initialised a fake Galaxy client that also presents itself to the game as a fake Steam client to allow the wrapper to "join the dots" between the imaginary "Steam account" that game is trying to unlock an achievement to (and GOG's wrapper has to fake) and the GOG account that the wrapper also "tunnels" it through to, to both pass-back "Steam Achievement unlocked" responses (that the game is expecting from the Steam client - yes, even in GOG games...) whilst translating same Steam Achievement formatted unlocks into Galaxy formatted ones for the Galaxy client, whilst also faking a false Galaxy client if the game is run offline.

I've already quoted a post by Galaxy development team saying the timeout delay (to check if Galaxy is running) is only now (from 2024 onwards) starting to be more configurable by developers in the newest wrapper version, but unfortunately that also only fixes newer +2024 games, all the 2018-2023 affected games using the wrapper remain still hard-coded with huge unadjustable delays until GOG updates the wrapper files. GOG's wrapper & Galaxy code is programmed and maintained by GOG, 3rd party game developers have absolute zero to do with altering internal Galaxy code (technically or legally) any more than they can start randomly changing core Steam client non-game code.

Seriously before replying read the above linked post : "I've reached out to the team responsible for the wrapper to adjust timeouts to more reasonable values and make them easily configurable for developers using the wrapper." That's "We (GOG) just made them configurable (written in Dec 2023) to allow the devs to change it from this point forward" precisely because the old 2018-2023 ones weren't...
Post edited April 10, 2024 by AB2012
avatar
AB2012: You're arguing the wrong argument.
Are you saying developers are not allowed to submit GOG specific versions of their games to GOG and are only allowed to submit the steam version?

That's not how I read it. Looks like it's just a BETA feature that is an optional CHOICE.

The devs have the power to make a very slightly modified version of the game for GOG that would not have this issue. They chose not to. I don't see why that would be a controversial conclusion.
Post edited April 10, 2024 by EverNightX
avatar
EverNightX: Are you saying developers are not allowed to submit GOG specific versions of their games to GOG and are only allowed to submit the steam version?
No (and if that's your point then I do agree with you). I'm saying if they were to do that then the ghost wrapper wouldn't need to exist in the first place. The reason the whole wrapper mess arose is precisely due to "popular demand" by certain people here wanting Steam Achievements in every GOG game - at any cost, and here we are...
avatar
EverNightX: Are you saying developers are not allowed to submit GOG specific versions of their games to GOG and are only allowed to submit the steam version?
avatar
AB2012: No (and if that's your point then I do agree with you). I'm saying if they were to do that then the ghost wrapper wouldn't need to exist in the first place. The reason the whole wrapper mess arose is precisely due to "popular demand" by certain people here wanting Steam Achievements in every GOG game - at any cost, and here we are...
Yes, I don't doubt that's true. I just couldn't see why anyone would assume this is somehow outside of the dev's control.
Post edited April 10, 2024 by EverNightX
avatar
Syphon72: I have a folder of save files backup. So I agree with you 100%, but we all know people will give up freedom for convenience.
In my case, I backup the saves inside the installer folder. There are some games that are annoying as heck and save inside the AppData folder, like many Unity built games, I'm looking at you Hollow Knight!!!!
I wish there was a more standard directory to save the saves (noice one), best would inside game folder otherwise a general config-game-saves or whatever.
high rated
avatar
Dark_art_: As installer (offline) user, I'm still amazed by the sheer number of people who use cloud saves (or achievements outside consoles for that matter)
avatar
Syphon72: I have a folder of save files backup. So I agree with you 100%, but we all know people will give up freedom for convenience.
To be honest, I've got nothing against Cloud Saves as (if done right) they actually shouldn't affect offline games at all. All a client needs to sync local vs cloud saves at the end of each game session is some database of local file save locations. This is exactly how GameSave Manager, Ludusavi, etc, work for backing up all games, even being able to backup saves to the cloud for 1970's floppy disc text adventures that predate even the invention of the Web without any game needing to know, how ScummVM works, etc. You can even create your own "live cloud saves" (save direct to the cloud and not locally) for any game by using an NTFS directory junction to redirect saves to a OneDrive / Dropbox sub-folder (or a NAS drive assigned to a drive letter) that then auto-syncs it, without the game even knowing. Same with Game Time Tracking, it just needs a "stopwatch" that times how long x.exe or whatever is running, then at the end of the game session the client sends a "+106mins for x Game in for logged in account" message to the cloud server and the server keeps a running tally, without touching the game itself. (That's if it's done properly that is...)

What's really screwing things up and needing these bugged out 'wrappers' is Achievements and Overlays (needed for achievement popups, etc) as the achievement triggering code does need to forced into the game. And that in turn needs a failsafe to stop the game crashing if the client isn't running to send back a "unlock successful" response (and read what has already been unlocked before the game starts). And on top of that to "save time porting Steam achievements to Galaxy achievements", many GOG games virtually are Steam games (internally) with an extra 'ghost' wrapper that fakes a Steam client running to the game whilst "tunnelling" that through either Galaxy (online) or a fake Galaxy client (offline), that's fast turning GOG's offline installers into the least desirable DRM-Free versions on the web.
avatar
timppu: Do I read it right it took you over 2 hours to install Civ IV? Wow, that is indeed something.

I guess most of that is then due to Wine and/or external hard drive... but still, even at 11 minutes that I got (installing locally on an internal SSD), it still was quite slow for a 3GB installer. Possibly due to the high number of small files in the game.
Well in any case, I think we've proven without a doubt that it'd be faster to uncork the dang thing.
avatar
dnovraD: Well in any case, I think we've proven without a doubt that it'd be faster to uncork the dang thing.
Why not just create your own archive from the installer though? Then you would not need to use the installer anymore.
Post edited April 11, 2024 by EverNightX
avatar
EverNightX: Why not just create your own archive from the installer though? Then you would not need to use the installer anymore.
I'm not quite sure we're both on the same level here.

By "Uncork the thing" I mean using a utility like InnoExtract and being done with it.
avatar
dnovraD: I'm not quite sure we're both on the same level here.

By "Uncork the thing" I mean using a utility like InnoExtract and being done with it.
Out of curiosity, what do you do after that? Manually copy the uncompressed files to some directory and run the game exe there (with WINE in your case), or run some installer within the installer?

Does this work with all GOG games (as long as you have the relevant dependencies/libraries in place like VC+++++ something something or DirectX9.0c), or do some games require extra steps, adding something to registry, creating a separate save game folder under My Documents that the game expects to be in place, or whatever?

I guess DOSBox games are a special case anyway, in Linux you probably want to use a Linux version of DOSBox anyway, not running the Windows DOSBox with WINE...
avatar
timppu: -snip-
Well, Quake for example, or Caesar III, I'd just extract the files with InnoExtract, then throw them at a source port of my choosing.

And yes, some games unfortunately require interacting with the mistake that is the Windows INI database. Close Combat 2, for example!

Thankfully, most games that need files to be in places will either specify as such or dump the files where they (think) they need to go.
high rated
avatar
timppu: Out of curiosity, what do you do after that? Manually copy the uncompressed files to some directory and run the game exe there (with WINE in your case), or run some installer within the installer?

Does this work with all GOG games (as long as you have the relevant dependencies/libraries in place like VC+++++ something something or DirectX9.0c), or do some games require extra steps, adding something to registry, creating a separate save game folder under My Documents that the game expects to be in place, or whatever?
If you're thinking of manually creating your own zip / 7z files from the game folder, that generally works for all games with the following notes:-

- I keep a list of common Windows Dependencies updated here, they usually need installing once per Windows install, not once per game.

- All GOG installers write Galaxy metadata registry entries usually under HKLM\SOFTWARE\GOG.com\Games\xxxxxxxxxx but most games don't need that stuff to run. Unity Engine games store resolution settings data under HKCU\Software\nameofgame but you don't need to manually add these, they create them themselves on first run.

- A few games do need the registry. Eg, Oblivion and Fallout 3 "Play" will be greyed out in their startup launchers if it can't find a certain "Installed Path" registry entry. In these cases if InnoExtract doesn't extract it, then InnoUnp can extract the install_script.iss file from the GOG installer and that contains all the needed registry entries.

- Games usually create their own data folders under My Documents, AppData, etc. You don't need to manually create those.

- If you're using a HiDPI display with Windows scaling at something other than 100%, then another (optional but useful) one added is HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers HIGHDPIAWARE flag but that's just where Windows stores the info you set when you right-click, Properties, Compatibility, and change scaling to "Application" so, eg, on a 1920x1200 laptop, Windows will run the game "natively" / pixel perfect at that resolution instead of trying to 'help' auto-scale it by 125% (effective 1536x960), 150% (1280x800), etc.

So if you wanted to create your own 7z file then automate a lot of the above to install in 2-clicks, you could create a 7z of the game folder, then place an install.bat file next to it containing:-

REM This line auto-unzips the game from your backup drive to System / Gaming drive (%~dp0 in front of the filename means "the path to the 7z file is in same folder as where this batch script is run from"):-
"C:\Program Files\7-Zip\7z.exe" x "%~dp0Oblivion.7z" -o"C:\GOG Games\Oblivion" -r

REM This line disables Windows DPI scaling for this game
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\GOG Games\Oblivion\Oblivion.exe" /t REG_SZ /d "HIGHDPIAWARE" /f

REM This line adds any required registry entries the game needs. You'll find these in the install_script.iss inside the GOG installer
REG ADD "HKLM\SOFTWARE\Wow6432Node\Bethesda Softworks\Oblivion" /v "Installed Path" /t REG_SZ /d "C:\GOG Games\Oblivion/" /f

REM If you've created a Shortcut link to the game's exe in the game folder, you can auto-copy that to the Windows Start Menu Games folder with:-
COPY "C:\GOG Games\Oblivion\Oblivion.lnk" "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Games"

^ And that would generally be enough to reliably replace the GOG installer with a script that auto-unzips the game, applies required registry tweaks, creates a Start Menu shortcut link, etc, in 2-clicks.
Post edited April 11, 2024 by AB2012
avatar
AB2012: ...
That seems pretty comprehensive. I'd just add that I believe you can confirm what if any redistributables are installed by looking at the

__redist folder in the installer.

Or if you already have the game installed scrolling to the bottom of the goggame-galaxyFileList.ini will give you a list:

[MSVC2019]
files_counter=1
F0=__redist\MSVC2019\vcredist_x86.exe
dirs_counter=0

Also I think you can safely remove unins0* from the game files if you are going this route.
Post edited April 11, 2024 by EverNightX
Youtube Video - Bringing your DOS games from GOG.com onto your actual DOS pc with the help of Innoextract

This method also works for non-DOS game GOG Offline Installers.
Post edited April 11, 2024 by TheBigCore
avatar
AB2012:
Nice. This should be in some immediately accessible knowledge base on GOG...