HeroicGamesLauncher icon indicating copy to clipboard operation
HeroicGamesLauncher copied to clipboard

Having more than one game argument breaks game arguments

Open Zorrototo opened this issue 3 years ago • 9 comments

Describe the bug

Having more than one game argument set breaks game arguments completely, none work.

Add logs

(21:15:44) DEBUG: [Legendary]: Running Legendary command: /opt/Heroic/resources/app.asar.unpacked/build/bin/linux/legendary --version (21:15:44) INFO: [Legendary]: Legendary location: /opt/Heroic/resources/app.asar.unpacked/build/bin/linux/legendary (21:15:44) INFO: [Gog]: GOGDL location: /opt/Heroic/resources/app.asar.unpacked/build/bin/linux/gogdl (21:15:44) INFO: [Backend]:

Heroic Version: 2.3.9 Brook Legendary Version: 0.20.26 Dark Energy OS: ManjaroLinux KERNEL: 5.18.7-1-MANJARO ARCH: x64 CPU: AMD Ryzen 5 3600 6-Core Processor @3.6 GOVERNOR: schedutil RAM: Total: 15.55 GiB Available: 10.76 GiB GRAPHICS: GPU0: NVIDIA GeForce GTX 1060 6GB VRAM: 6144MB DRIVER: 515.57 PROTOCOL: x11

(21:15:44) WARNING: [Backend]: Protocol already registered. (21:15:45) INFO: [Frontend]: Refreshing Library (21:15:45) INFO: [Legendary]: Refreshing library... (21:15:45) INFO: [Legendary]: Refreshing Epic Games... (21:15:46) DEBUG: [Legendary]: Running Legendary command: /opt/Heroic/resources/app.asar.unpacked/build/bin/linux/legendary list (21:15:53) INFO: [Backend]: Downloaded Winetricks (21:15:54) INFO: [Legendary]: Updating game list (21:15:54) INFO: [Legendary]: Game List Updated (21:15:54) INFO: [Legendary]: Checking for game updates: /opt/Heroic/resources/app.asar.unpacked/build/bin/linux/legendary list-installed --check-updates --tsv (21:15:54) DEBUG: [Legendary]: Running Legendary command: /opt/Heroic/resources/app.asar.unpacked/build/bin/linux/legendary list-installed --check-updates --tsv (21:15:56) INFO: [Legendary]: Found 1 game(s) to update (21:15:56) INFO: [Gog]: Found 0 game(s) to update (21:18:11) INFO: [Backend]: Launching Borderlands 3 (Catnip) (21:18:11) DEBUG: [Legendary]: Running Wine command: "/home/omano/.config/heroic/tools/wine/Wine-GE-Proton7-20/bin/wine" wineboot --init (21:18:12) DEBUG: [Legendary]: Ran Wine command: "/home/omano/.config/heroic/tools/wine/Wine-GE-Proton7-20/bin/wine" wineboot --init (21:18:12) INFO: [Legendary]: Launching Borderlands 3: DXVK_ASYNC=1 WINEPREFIX=/home/omano/Games/Heroic/Prefixes/Borderlands3 WINEFSYNC=1 /usr/bin/mangohud --dlsym /usr/bin/gamemoderun /opt/Heroic/resources/app.asar.unpacked/build/bin/linux/legendary launch Catnip --wine /home/omano/.config/heroic/tools/wine/Wine-GE-Proton7-20/bin/wine --wine-prefix /home/omano/Games/Heroic/Prefixes/Borderlands3 "-culture=en -nostartupmovies" (21:18:12) DEBUG: [Legendary]: Running Legendary command: DXVK_ASYNC=1 WINEPREFIX=/home/omano/Games/Heroic/Prefixes/Borderlands3 WINEFSYNC=1 /usr/bin/mangohud --dlsym /usr/bin/gamemoderun /opt/Heroic/resources/app.asar.unpacked/build/bin/linux/legendary launch Catnip --wine /home/omano/.config/heroic/tools/wine/Wine-GE-Proton7-20/bin/wine --wine-prefix /home/omano/Games/Heroic/Prefixes/Borderlands3 "-culture=en -nostartupmovies"

Steps to reproduce

  1. Go to Borderlands 3 settings
  2. Click on Other
  3. Set game argument to -culture=en and start the game, observe the language change in menu
  4. Close the game and add another game argument -culture=en -nostartupmovies and then start the game, observer both game argument non effective (menu language not set, and intro videos playing)

Expected behavior

All the game arguments are working when there is more than one.

Screenshots

No response

System Information

  • OS: Manjaro KDE
  • Heroic Version: 2.3.9 Brook

Additional information

I tried each game argument on their own, they work, one puts the game in English, the other one removes intro videos. When both are added -culture=en -nostartupmovies then when you start the game, none is actually applied, game is not in English, and you have the intro videos.

Zorrototo avatar Jul 01 '22 19:07 Zorrototo

Can you check if same problem exists in beta release?

imLinguin avatar Jul 01 '22 20:07 imLinguin

Unfortunately I can't

[omano@omano-nvme ~]$ flatpak remote-add --user flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo
error: Remote flathub-beta already exists
[omano@omano-nvme ~]$ flatpak update --appstream
Updating appstream data for remote flathub
Updating appstream data for user remote flathub-beta
[omano@omano-nvme ~]$ flatpak install com.heroicgameslauncher.hgl/flathub-beta
Looking for matches?
error: No remote refs found similar to ?com.heroicgameslauncher.hgl/flathub-beta?

and there is nothing to download in the release page.

//EDIT: OK I found by looking through the tag that the Assets block is developed there, but not in the Release page where I thought there was nothing. My bad. Will try.

Zorrototo avatar Jul 01 '22 22:07 Zorrototo

So it is the same on the BETA, however I see there is a new setting to set the lang now so it may help in the meantime (//EDIT: no even the new Preferred Language setting doesn't work for Borderlands 3 so no workaround for me).

Zorrototo avatar Jul 01 '22 22:07 Zorrototo

I just noticed it also breaks more things. For example the Offline Game mode is broken is connects to online.

Zorrototo avatar Jul 07 '22 17:07 Zorrototo

Had the same thing happen to me recently; it can apparently be solved by wrapping the arguments string in quotes.

EDIT: Also, yeah, this happens in the latest beta as well.

Nocifer avatar Jul 28 '22 09:07 Nocifer

That's interesting, can you provide game logs?

imLinguin avatar Jul 28 '22 09:07 imLinguin

It seems I've uncovered a second little bug after all.

The argument string is -full -width 1680 -height 1050 -game Unofficial_Patch.

Without quotes:

Game launched at: Thu Jul 28 2022 12:34:35 GMT+0300 (Eastern European Summer Time)

Launch Command: WINE_FULLSCREEN_FSR_MODE=quality LD_PRELOAD= WINEPREFIX=/home/nocifer/Games/.wine/VtMB WINE_FULLSCREEN_FSR=1 WINE_FULLSCREEN_FSR_STRENGTH=2 WINEFSYNC=1 LD_LIBRARY_PATH=/home/nocifer/.config/heroic/tools/wine/Wine-GE-Proton7-23/lib:/home/nocifer/.config/heroic/tools/wine/Wine-GE-Proton7-23/lib64: /usr/bin/mangohud --dlsym /usr/bin/gamemoderun /opt/Heroic/resources/app.asar.unpacked/build/bin/linux/gogdl launch /home/nocifer/Games/VtMB 1207659240 --wine /home/nocifer/.config/heroic/tools/wine/Wine-GE-Proton7-23/bin/wine --wine-prefix /home/nocifer/Games/.wine/VtMB --os windows -full -width 1680 -height 1050 -game Unofficial_Patch

Game Log:
gamemodeauto: 
usage: gogdl launch [-h] --platform {windows,osx,linux} [--no-wine]
                    [--wine WINE] [--wine-prefix WINE_PREFIX]
                    [--wrapper WRAPPER] [--override-exe OVERRIDE_EXE]
                    [--token TOKEN]
                    path id
gogdl launch: error: argument -h/--help: ignored explicit argument 'eight'

So it seems that the actual underlying bug in this case is that these arguments are not applied solely to the game's binary, but to the launch command as a whole; and because gogdl just so happens to take an optional '-h' argument, it erroneously interprets and then hijacks my custom -height argument as its own -h argument plus an additional unknown eight argument, which is what ultimately makes the command fail.

Removing the -height argument makes the launch command work as expected, and so does wrapping the arguments in quotes:

Game launched at: Thu Jul 28 2022 12:58:51 GMT+0300 (Eastern European Summer Time)

Launch Command: WINE_FULLSCREEN_FSR_MODE=quality LD_PRELOAD= WINEPREFIX=/home/nocifer/Games/.wine/VtMB WINE_FULLSCREEN_FSR=1 WINE_FULLSCREEN_FSR_STRENGTH=2 WINEFSYNC=1 LD_LIBRARY_PATH=/home/nocifer/.config/heroic/tools/wine/Wine-GE-Proton7-23/lib:/home/nocifer/.config/heroic/tools/wine/Wine-GE-Proton7-23/lib64: /usr/bin/mangohud --dlsym /usr/bin/gamemoderun /opt/Heroic/resources/app.asar.unpacked/build/bin/linux/gogdl launch /home/nocifer/Games/VtMB 1207659240 --wine /home/nocifer/.config/heroic/tools/wine/Wine-GE-Proton7-23/bin/wine --wine-prefix /home/nocifer/Games/.wine/VtMB --os windows "-full -width 1680 -height 1050 -game Unofficial_Patch"

Game Log:
gamemodeauto:
gamemodeauto:
info:  Game: Vampire.exe
info:  DXVK: v1.10.2
...

So perhaps it would be a good idea to wrap the arguments string in quotes by default, in order to avoid such unforeseen incidents?

Nocifer avatar Jul 28 '22 10:07 Nocifer

@Nocifer @Zorrototo can you try on 2.4.3 since we refactored that part of the code, might be fixed.

flavioislima avatar Sep 30 '22 11:09 flavioislima

Nope; launching the game with 2.4.3 does the same thing:

Game launched at: Sat Oct 01 2022 11:44:00 GMT+0300 (Eastern European Summer Time)

Launch Command: WINE_FULLSCREEN_FSR_MODE=quality LD_PRELOAD= WINEPREFIX=/home/nocifer/Games/VtMB/wine WINE_FULLSCREEN_FSR=1 WINE_FULLSCREEN_FSR_STRENGTH=2 WINEFSYNC=1 LD_LIBRARY_PATH=/home/nocifer/.local/share/lutris/runners/wine/lutris-GE-Proton7-29-x86_64/lib:/home/nocifer/.local/share/lutris/runners/wine/lutris-GE-Proton7-29-x86_64/lib64: /usr/bin/mangohud --dlsym /usr/bin/gamemoderun /opt/Heroic/resources/app.asar.unpacked/build/bin/linux/gogdl launch /home/nocifer/Games/VtMB 1207659240 --wine /home/nocifer/.local/share/lutris/runners/wine/lutris-GE-Proton7-29-x86_64/bin/wine --wine-prefix /home/nocifer/Games/VtMB/wine --os windows -full -width 1680 -height 1050 -game Unofficial_Patch

Game Log:

gamemodeauto: 

usage: gogdl launch [-h] --platform {windows,osx,linux} [--no-wine]

                    [--wine WINE] [--wine-prefix WINE_PREFIX]

                    [--wrapper WRAPPER] [--override-exe OVERRIDE_EXE]

                    [--token TOKEN]

                    path id

gogdl launch: error: argument -h/--help: ignored explicit argument 'eight'

Nocifer avatar Oct 01 '22 08:10 Nocifer

Closing this one, reopen it if the issue still occurs on 2.5.2.

flavioislima avatar Dec 16 '22 21:12 flavioislima

Issue is still present on 2.5.2 with the exact same behavior as before.

Nocifer avatar Dec 31 '22 10:12 Nocifer

Try using this gogdl build, it's already on main branch so it should be bundled with next heroic release
https://github.com/Heroic-Games-Launcher/heroic-gogdl/actions/runs/3856163909

imLinguin avatar Jan 07 '23 17:01 imLinguin

Try using this gogdl build, it's already on main branch so it should be bundled with next heroic release https://github.com/Heroic-Games-Launcher/heroic-gogdl/actions/runs/3856163909

Sorry for my lack of response, it wasn't intentional; the good news is that I can confirm the bug as fixed in the current 2.6.2, so you have my thanks for working on it.

Nocifer avatar Feb 15 '23 06:02 Nocifer

Great to hear

imLinguin avatar Feb 15 '23 11:02 imLinguin