HeroicGamesLauncher
HeroicGamesLauncher copied to clipboard
Having more than one game argument breaks game arguments
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
- Go to Borderlands 3 settings
- Click on Other
- Set game argument to
-culture=enand start the game, observe the language change in menu - Close the game and add another game argument
-culture=en -nostartupmoviesand 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.
Can you check if same problem exists in beta release?
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.
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).
I just noticed it also breaks more things. For example the Offline Game mode is broken is connects to online.
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.
That's interesting, can you provide game logs?
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 @Zorrototo can you try on 2.4.3 since we refactored that part of the code, might be fixed.
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'
Closing this one, reopen it if the issue still occurs on 2.5.2.
Issue is still present on 2.5.2 with the exact same behavior as before.
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
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.
Great to hear