redromnon / HeroicBashLauncher

Directly launch any Epic Games Store and GOG game from anywhere without Heroic on Linux.
GNU General Public License v3.0
353 stars 17 forks source link

Game not launching from SteamDeck UI #28

Closed ajbucci closed 2 years ago

ajbucci commented 2 years ago

Sorry to post this here since my bet is it's not even an issue with the shell script you're generating, but on the off chance that it is....

When trying to run Hades using the latest AppImage relase (HeroicBashLauncher_AppImage_2.2.5 and latest Heroic Launcher) it will launch from terminal AND launch from the Steam UI from Desktop, but it will NOT launch from the SteamDeckUI. Is there a good way to debug this? I can post the steam logs when running steam in terminal and launching hades from there, but it works in that scenario...

redromnon commented 2 years ago

Quite strange. Well, I have no idea how to debug from the Deck UI since I don't own a Deck.

Quick question - Are you using Heroic Games Launcher AppImage or Flatpak?

ajbucci commented 2 years ago

AppImage! Yes, definitely strange.

If I add "> log.log" to the launch options it generates a log file in my GameFiles directory but it only says:

3.32.0 Checking if Zenity is installed: Game parameters updated. Now launching game...

redromnon commented 2 years ago

So it looks like it's just updating the parameters but failing to run the launch command in the .sh file. Can you paste the contents of the game's .sh file?

ajbucci commented 2 years ago

Just to add, that method of logging does show the expected (working) output when launching from the steam desktop UI.

Here are the contents of my .sh file:

!/bin/bash

Game Name = Hades (EPIC)

App Name = Min

Overrides launch parameters

cd .. && ./HeroicBashLauncher "Hades" "Min" "/home/deck/.config/heroic/GamesConfig/Min.json" "epic"

(/home/deck/Downloads/HeroicBashLauncher-2.2.5_AppImage/binaries/legendary launch Min --wine '/home/deck/.config/heroic/tools/wine/Wine-GE-Proton7-7/bin/wine' --wine-prefix '/home/deck/Games/Heroic/Prefixes/Hades' || (echo "---CANNOT CONNECT TO NETWORK. RUNNING IN OFFLINE MODE---" ; /home/deck/Downloads/HeroicBashLauncher-2.2.5_AppImage/binaries/legendary launch Min --offline --wine '/home/deck/.config/heroic/tools/wine/Wine-GE-Proton7-7/bin/wine' --wine-prefix '/home/deck/Games/Heroic/Prefixes/Hades' )) || (zenity --error --title="Error" --text="Failed to launch games

Consider posting the log as an issue" --width=200 --timeout=3)

redromnon commented 2 years ago

Looks fine. I guess you may have to try using Heroic Flatpak. The Deck seems very unpredictable.

redromnon commented 2 years ago

Can you try pasting exec > log.log 2>&1 right under #!/bin/bash and commenting the Override launch parameters command like #cd .. && ./HeroicBashLauncher ...?

Now try launching the script from Steam (Desktop and UI mode) without any launch options.

ajbucci commented 2 years ago

That did the trick!! Here's the log:

ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. [Core] WARNING: Could not determine locale, falling back to en-US [cli] INFO: Logging in... [Core] INFO: Logging in... [cli] INFO: Checking for updates... [Core] INFO: Getting authentication token... [cli] INFO: Launching Min... ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. wine: using kernel write watches (experimental). ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wineserver: using server-side synchronization. wine: RLIMIT_NICE is <= 20, unable to use setpriority safely pid 10056 != 10055, skipping destruction (fork without exec?) wine: overriding CPU configuration, 8 logical CPUs, host CPUs 0,1,2,3,4,5,6,7. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). wine: overriding CPU configuration, 8 logical CPUs, host CPUs 0,1,2,3,4,5,6,7. 002c:fixme:winediag:LdrInitializeThunk wine-staging 7.0 is a testing version containing experimental patches. 002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). wine: overriding CPU configuration, 8 logical CPUs, host CPUs 0,1,2,3,4,5,6,7. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). wine: overriding CPU configuration, 8 logical CPUs, host CPUs 0,1,2,3,4,5,6,7. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). wine: overriding CPU configuration, 8 logical CPUs, host CPUs 0,1,2,3,4,5,6,7. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). wine: overriding CPU configuration, 8 logical CPUs, host CPUs 0,1,2,3,4,5,6,7. wine: using kernel write watches (experimental). wine: overriding CPU configuration, 8 logical CPUs, host CPUs 0,1,2,3,4,5,6,7. ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). wine: overriding CPU configuration, 8 logical CPUs, host CPUs 0,1,2,3,4,5,6,7. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). wine: overriding CPU configuration, 8 logical CPUs, host CPUs 0,1,2,3,4,5,6,7. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). wine: overriding CPU configuration, 8 logical CPUs, host CPUs 0,1,2,3,4,5,6,7. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). wine: overriding CPU configuration, 8 logical CPUs, host CPUs 0,1,2,3,4,5,6,7. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). wine: overriding CPU configuration, 8 logical CPUs, host CPUs 0,1,2,3,4,5,6,7. Wine cannot find the FreeType font library. To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5. http://www.freetype.org ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). wine: overriding CPU configuration, 8 logical CPUs, host CPUs 0,1,2,3,4,5,6,7. 0148:err:module:import_dll Library dxgi.dll (which is needed by L"Z:\home\deck\Games\Heroic\Hades\x64\EngineWin64s.dll") not found 0148:err:module:import_dll Library dxgi.dll (which is needed by L"C:\windows\system32\d3d11.dll") not found 0148:err:module:import_dll Library d3d11.dll (which is needed by L"Z:\home\deck\Games\Heroic\Hades\x64\EngineWin64s.dll") not found pid 10069 != 10068, skipping destruction (fork without exec?)

redromnon commented 2 years ago

Does launching from Steam via desktop mode and UI mode display different log?

ajbucci commented 2 years ago

Yes, it's different. Here's the log launching from steam desktop (up until it successfully launches the game):

ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. [Core] WARNING: Could not determine locale, falling back to en-US [cli] INFO: Logging in... [Core] INFO: Trying to re-use existing login session... [cli] INFO: Checking for updates... [Core] INFO: Getting authentication token... [cli] INFO: Launching Min... ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. wine: using kernel write watches (experimental). ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wineserver: using server-side synchronization. wine: RLIMIT_NICE is <= 20, unable to use setpriority safely pid 3211 != 3210, skipping destruction (fork without exec?) ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). 002c:fixme:winediag:LdrInitializeThunk wine-staging 7.0 is a testing version containing experimental patches. 002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). Wine cannot find the FreeType font library. To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5. http://www.freetype.org ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. wine: using kernel write watches (experimental). 0144:err:wldap32:DllMain No libldap support, expect problems 0144:err:kerberos:kerberos_LsaApInitializePackage no Kerberos support, expect problems 0144:err:winediag:ntlm_check_version ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution. 0144:err:ntlm:ntlm_LsaApInitializePackage no NTLM support, expect problems 0144:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION

kuynh commented 2 years ago

I am having the same issue too where the script will work in steam desktop mode but not in steam deck mode. Heroic launcher flatpak and heroic bash launcher flatpak.

redromnon commented 2 years ago

@kuynh Can you try pasting exec > log.log 2>&1 right under #!/bin/bash in the game .sh script you want to launch from the Steam UI? Then share the log from log.log here.

kuynh commented 2 years ago

log.log

Here is the log.

kuynh commented 2 years ago

ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ATTENTION: default value of option vblank_mode overridden by environment. 3.32.0 Traceback (most recent call last): File "HeroicBashLauncher.py", line 35, in File "flatpak.py", line 29, in launchflatpakgame File "checkparameters.py", line 12, in checkparameters File "json/init.py", line 293, in load File "encodings/ascii.py", line 26, in decode UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 730: ordinal not in range(128) [3] Failed to execute script 'HeroicBashLauncher' due to unhandled exception! Checking if Zenity is installed: ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. bwrap: execvp ./Documents/HeroicBashLauncher-2.2.5_Flatpak/GameFiles/HeroicBashLauncher: No such file or directory

redromnon commented 2 years ago

Did you use Flatseal and add the HeroicBashLauncher path?

redromnon commented 2 years ago

@ajbucci and @kuynh try using Proton instead of Wine-GE and see if that works.

kuynh commented 2 years ago

Yes I did use flatseal and gave access to home files. How should I run proton instead of wine-ge? Do I force it to use proton from the steam ui? If so then problem still occurs with proton experimental and proton 7.

redromnon commented 2 years ago

You can select Proton in Heroic itself.

redromnon commented 2 years ago

In @kuynh's case, I can say that it's a Python error while in @ajbucci's it's some DXVK issue. But none of these issues occur while in desktop mode :(

I don't know if it makes much of a difference, can you add the game launch script manually instead of using AddToSteam and see if that works?

ajbucci commented 2 years ago

If I select Proton in Heroic, re-run your script generator, then run your script from the SteamDeckUI it will open the game (progress!)... however the game doesn't actually take focus, it opens in the background and I can hear sound, but there is no way for me to see the game itself.

redromnon commented 2 years ago

Did you use Steam's Proton? Check with Proton-GE and other Wine-GE versions to see if it works.

ajbucci commented 2 years ago

Interesting. Switching to Proton-GE from Steam's Proton does indeed work!... any idea as to why? I assume none of this has to do with your script and I really appreciate you taking the time to help troubleshoot!

kuynh commented 2 years ago

Proton 7.0 and Proton-GE did not work for me when setting them in the heroic launcher. Also I forgot to mention this but the script AddToSteam does not work and I've been manually adding them to steam. I was curious so I did what you told me to do to get logs and did it for the AddToSteam script and got this. Hopefully this might provide more information.

(zenity:11588): WARNING : 15:22:38.951: AT-SPI: Could not obtain desktop path or name

(zenity:11588): WARNING : 15:22:38.977: atk-bridge: get_device_events_reply: unknown signature

(zenity:11588): WARNING : 15:22:38.977: atk-bridge: get_device_events_reply: unknown signature

(zenity:11588): WARNING : 15:22:38.977: atk-bridge: GetRegisteredEvents returned message with unknown signature

(zenity:11588): WARNING : 15:22:38.991: AT-SPI: Could not obtain desktop path or name

(zenity:11588): WARNING : 15:22:38.992: AT-SPI: Could not obtain desktop path or name

3.32.0

(zenity:11622): WARNING : 15:22:42.055: AT-SPI: Could not obtain desktop path or name

(zenity:11622): WARNING : 15:22:42.067: AT-SPI: Could not obtain desktop path or name

(zenity:11622): WARNING : 15:22:42.067: atk-bridge: get_device_events_reply: unknown signature

(zenity:11622): WARNING : 15:22:42.067: atk-bridge: get_device_events_reply: unknown signature

(zenity:11622): WARNING : 15:22:42.067: atk-bridge: GetRegisteredEvents returned message with unknown signature

(zenity:11622): WARNING : 15:22:42.082: AT-SPI: Could not obtain desktop path or name

(zenity:11622): WARNING : 15:22:42.082: atk-bridge: get_device_events_reply: unknown signature

(zenity:11622): WARNING : 15:22:42.082: atk-bridge: get_device_events_reply: unknown signature

(zenity:11622): WARNING : 15:22:42.082: atk-bridge: GetRegisteredEvents returned message with unknown signature Checking if Zenity is installed: Selecting Steam userid - 167959809 RocketLeague_Heroic Adding Rocket League to Steam

redromnon commented 2 years ago

The log shows that the script worked. Did the error dialog pop up or did it fail silently?

kuynh commented 2 years ago

I do see the pop up of finish adding to steam but when I check steam its not there.

redromnon commented 2 years ago

Maybe you can create a new issue for this. As for launching from Steam UI is concerned, I'm pretty sure that Python error is getting in the way.

redromnon commented 2 years ago

Maybe you can try Bash launcher v2.3.0 and see if the Python error gets solved.

zachradtka commented 2 years ago

The problem is the registered symbol at the end of the path /home/deck/Games/Heroic/Rocket-League®/. I noticed that it failed to parse that symbol when launching. To fix this I renamed the folder on my machine:

mv /home/deck/Games/Heroic/Prefixes/Rocket-League® /home/deck/Games/Heroic/Prefixes/Rocket-League

Then, in the Heroic Games Launcher I went into the settings for Rocket League and set the WinePrefix folder to the path that I changed above home/deck/Games/Heroic/Prefixes/Rocket-League.

redromnon commented 2 years ago

Exactly like #30. That's the only workaround now. The Heroic devs have to implement the changes.

redromnon commented 2 years ago

For those users still facing issues, make sure to go through workarounds. Otherwise, I'll be closing this issue soon since it's not a Bash Launcher bug anymore.