redromnon / HeroicBashLauncher

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

[Bug] File path space error (again) #123

Open kodicd opened 1 year ago

kodicd commented 1 year ago

Discussed in https://github.com/redromnon/HeroicBashLauncher/discussions/122

Originally posted by **kodicd** February 11, 2023 ``Hi there, first of all I love your project, but it seems there is sth. wrong on my side (only one game actually works with your script for me) on steam deck, hope, you can help: On steamdeck I get this error: ``` cat GodsTrigger_Heroic.sh #!/bin/bash #Generate log exec > logs/GodsTrigger_Heroic.log 2>&1 #Enable UTF-8 Encoding export LC_ALL=en_US.UTF-8 #Game Name = God's Trigger (epic) #App Name = 9bc4423d873845739cc99ab69b6bfbe9 #Override launch parameters /home/deck/Games/Heroic/HeroicBashLauncher/HeroicBashLauncher --update "God's Trigger" "9bc4423d873845739cc99ab69b6bfbe9" "/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/GamesConfig/9bc4423d873845739cc99ab69b6bfbe9.json" "epic" flatpak run --command=./launchflatpakgame.sh com.heroicgameslauncher.hgl #Launch Command #/app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/legendary launch 9bc4423d873845739cc99ab69b6bfbe9 --language en --no-wine --wrapper "/home/deck/.local/share/Steam/steamapps/common/Proton 7.0/proton" run ``` ``` cat logs/GodsTrigger_Heroic.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. Using Bash Launcher v3.2.0 NOTE - This is an independent project and not affiliated with Heroic Games Launcher. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. (...) [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 9bc4423d873845739cc99ab69b6bfbe9... Traceback (most recent call last): File "legendary/cli.py", line 3061, in File "legendary/cli.py", line 2976, in main File "legendary/cli.py", line 697, in launch_game File "subprocess.py", line 951, in __init__ File "subprocess.py", line 1821, in _execute_child FileNotFoundError: [Errno 2] No such file or directory: '/home/deck/.local/share/Steam/steamapps/common/Proton' [4] Failed to execute script 'cli' due to unhandled exception! 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. wineserver stopped God's Trigger stopped ``` ``` ls /home/deck/.local/share/Steam/steamapps/common/ 'Ori and the Will of the Wisps' 'Proton - Experimental' 'Steam Controller Configs' SteamLinuxRuntime 'Steamworks Shared' 'Proton 7.0' 'Proton Hotfix' Steam.dll ``` I tried creating a symlink for "Proton" to "Protion 7.0", did not work. Games to work called from within Heroic Games Launcher, what is wrong in my setup that it fails? Thanks! PS: If this needs to move to "Issues" I'd be happy if you do so, thanks.
kodicd commented 1 year ago

Here is "launchflatpakgame.sh":

cat /home/deck/Games/Heroic/HeroicBashLauncher/GameFiles/launchflatpakgame.sh
#!/bin/bash

    #Currently created launch script for Horizon Chase Turbo (bb406082b69a47208489d3616b22b5c2) (epic)
    #Launches from HorizonChaseTurbo_Heroic.sh

    #Launch game

    PROTON_NO_ESYNC="1" PROTON_NO_FSYNC="1" STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/deck/.var/app/com.heroicgameslauncher.hgl/.steam/steam" STEAM_COMPAT_DATA_PATH="/home/deck/Games/Heroic/Prefixes/Horizon Chase Turbo" STEAM_COMPAT_APP_ID="0" SteamAppId="0" /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/legendary launch bb406082b69a47208489d3616b22b5c2 --language en --no-wine --wrapper "/home/deck/.local/share/Steam/steamapps/common/Proton 7.0/proton" run

    #Wait for game to launch
    sleep 10

    while [ 1 ]
    do

        checkwine="wineserver"

        if pgrep -x "$checkwine" >/dev/null
        then
            :
        else
            echo "$checkwine stopped"
            echo "Horizon Chase Turbo stopped"

            exit
        fi

        sleep 3
    done
redromnon commented 1 year ago

Most certainly this is the issue - FileNotFoundError: [Errno 2] No such file or directory: '/home/deck/.local/share/Steam/steamapps/common/Proton'

But this problem was supposed to be resolved by enclosing the full path in double quotes as seen in "/home/deck/.local/share/Steam/steamapps/common/Proton 7.0/proton"

redromnon commented 1 year ago

Which is the game that does work? Are you using Proton for it too?

kodicd commented 1 year ago

Most certainly this is the issue - FileNotFoundError: [Errno 2] No such file or directory: '/home/deck/.local/share/Steam/steamapps/common/Proton'

But this problem was supposed to be resolved by enclosing the full path in double quotes as seen in "/home/deck/.local/share/Steam/steamapps/common/Proton 7.0/proton"

Right, I saw that one too, Symlink "Proton" to "Proton 7.0" didn't work either.

kodicd commented 1 year ago

The one working is Wine:

 #Launch Command
    #/app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/legendary launch d6264d56f5ba434e91d4b0a0b056c83a --language en --wine-prefix /home/deck/Games/Heroic/Prefixes/TombRaiderGOTYE --wine /home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/tools/wine/Wine-GE-Proton7-33/bin/wine
kodicd commented 1 year ago

Hm...maybe it is more to it - In Heroic I switched this Game to "Proton-GE-Proton7-38":

Game called (and running) from within Heroic Games Launcher:

ps aux | grep GodsTrigger
deck        3001  0.1  0.1  18340 15940 ?        S    06:12   0:00 python3 /home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/tools/proton/Proton-GE-Proton7-38/proton run /run/media/mmcblk0p1/epicapps/GodsTrigger/GodsTrigger.exe -AUTH_LOGIN=unused -AUTH_PASSWORD=<secret> -AUTH_TYPE=exchangecode -epicapp=9bc4423d873845739cc99ab69b6bfbe9 -epicenv=Prod -EpicPortal -epicusername=<user> -epicuserid=<userid> -epiclocale=en -epicsandboxid=ceaa24233cdb4b678a1cf515e3a912e8
deck        3003  0.1  0.1 1919516 26328 ?       Sl   06:12   0:00 c:\windows\system32\steam.exe /run/media/mmcblk0p1/epicapps/GodsTrigger/GodsTrigger.exe -AUTH_LOGIN=unused -AUTH_PASSWORD=<secret> -AUTH_TYPE=exchangecode -epicapp=9bc4423d873845739cc99ab69b6bfbe9 -epicenv=Prod -EpicPortal -epicusername=<user> -epicuserid=<userid> -epiclocale=en -epicsandboxid=ceaa24233cdb4b678a1cf515e3a912e8
deck        3081  107  8.4 6469784 1277148 ?     Sl   06:12   1:38 Z:\run\media\mmcblk0p1\epicapps\GodsTrigger\GodsTrigger.exe -AUTH_LOGIN=unused -AUTH_PASSWORD=<secret> -AUTH_TYPE=exchangecode -epicapp=9bc4423d873845739cc99ab69b6bfbe9 -epicenv=Prod -EpicPortal -epicusername=<user> -epicuserid=<userid> -epiclocale=en -epicsandboxid=ceaa24233cdb4b678a1cf515e3a912e8

Game called from BashLauncher (not working):

cat /home/deck/Games/Heroic/HeroicBashLauncher/GameFiles/logs/GodsTrigger_Heroic.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.
(...)
3.32.0
ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
(...).
Using Bash Launcher v3.2.0
NOTE - This is an independent project and not affiliated with Heroic Games Launcher.

ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
(...)
[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 9bc4423d873845739cc99ab69b6bfbe9...
(...)
Proton: Need a verb.
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 stopped
cat /home/deck/Games/Heroic/HeroicBashLauncher/GameFiles/GodsTrigger_Heroic.sh
#!/bin/bash

    #Generate log
    exec > logs/GodsTrigger_Heroic.log 2>&1

    #Enable UTF-8 Encoding
    export LC_ALL=en_US.UTF-8

    #Game Name = God's Trigger (epic)

    #App Name = 9bc4423d873845739cc99ab69b6bfbe9

    #Override launch parameters
    /home/deck/Games/Heroic/HeroicBashLauncher/HeroicBashLauncher --update "God's Trigger" "9bc4423d873845739cc99ab69b6bfbe9" "/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/GamesConfig/9bc4423d873845739cc99ab69b6bfbe9.json" "epic"

    flatpak run --command=./launchflatpakgame.sh com.heroicgameslauncher.hgl

    #Launch Command
    #/app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/legendary launch 9bc4423d873845739cc99ab69b6bfbe9 --language en --no-wine --wrapper "/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/tools/proton/Proton-GE-Proton7-38/proton" run
cat /home/deck/Games/Heroic/HeroicBashLauncher/GameFiles/launchflatpakgame.sh
#!/bin/bash

    #Currently created launch script for God's Trigger (9bc4423d873845739cc99ab69b6bfbe9) (epic)
    #Launches from GodsTrigger_Heroic.sh

    #Launch game

    PROTON_NO_ESYNC="1" PROTON_NO_FSYNC="1" STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/deck/.var/app/com.heroicgameslauncher.hgl/.steam/steam" STEAM_COMPAT_DATA_PATH="/home/deck/Games/Heroic/Prefixes/Gods Trigger" STEAM_COMPAT_APP_ID="0" SteamAppId="0" /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/legendary launch 9bc4423d873845739cc99ab69b6bfbe9 --language en --no-wine --wrapper "/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/tools/proton/Proton-GE-Proton7-38/proton" run

    #Wait for game to launch
    sleep 10

    while [ 1 ]
    do

        checkwine="wineserver"

        if pgrep -x "$checkwine" >/dev/null
        then
            :
        else
            echo "$checkwine stopped"
            echo "God's Trigger stopped"

            exit
        fi

        sleep 3
    done
 cat /home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/GamesConfig/9bc4423d873845739cc99ab69b6bfbe9.json
{
  "9bc4423d873845739cc99ab69b6bfbe9": {
    "autoInstallDxvk": false,
    "autoInstallVkd3d": false,
    "preferSystemLibs": false,
    "nvidiaPrime": false,
    "enviromentOptions": [],
    "wrapperOptions": [],
    "showFps": false,
    "useGameMode": false,
    "language": "",
    "wineVersion": {
      "bin": "/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/tools/proton/Proton-GE-Proton7-38/proton",
      "name": "Proton - Proton-GE-Proton7-38",
      "type": "proton"
    },
    "winePrefix": "/home/deck/Games/Heroic/Prefixes/Gods Trigger"
  },
  "version": "v0",
  "explicit": true
ls /home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/tools/proton/
Proton-GE-Proton7-38
ls /home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/tools/proton/Proton-GE-Proton7-38/proton
/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/tools/proton/Proton-GE-Proton7-38/proton
kodicd commented 1 year ago

Let me know if there is anything else I can provide you with.

kodicd commented 1 year ago

It's working now, I made these steps:

redromnon commented 1 year ago

Is it working with Proton games now?

redromnon commented 1 year ago

Try this build - https://github.com/redromnon/HeroicBashLauncher/actions/runs/4156097971

Made a few fixes.

redromnon commented 1 year ago

This issue should be solved in v3.2.1