fufexan / nix-gaming

Gaming on Nix
MIT License
519 stars 47 forks source link

FA Forever client is unable to successfully start game itself #177

Open nojusr opened 3 months ago

nojusr commented 3 months ago

Issue is exactly as the title suggests.

Exact package used: faf-client-bin.

I can confirm that I have run the setup script successfully, only noting that I was unable to use the non-legacy proton config wizard. I have also manually checked that every path provided by the setup script looks correct at a light glance.

Additionally, I can confirm that the game itself runs fine when launched through steam.

The only seemingly relevant logs are as follows (redacted for privacy). The game itself did not write any logs. (I have checked ~/.faforever/logs/game_*.log.

2024-04-24T16:38:40.800+03:00  INFO 265267 --- [FAF Client] [r-http-epoll-11] c.f.c.fa.ForgedAllianceLaunchService     : Starting Forged Alliance with command: [env, PROTON_NO_ESYNC=1, PROTON_NO_FSYNC=1, steam-run, %USER_PROFILE%/.local/share/Steam/ubuntu12_32/reaper, SteamLaunch, AppId=9420, --, %USER_PROFILE%/.local/share/Steam/ubuntu12_32/steam-launch-wrapper, --, /mnt/main/games/steam-games/steamapps/common/SteamLinuxRuntime_sniper/_v2-entry-point, --verb=waitforexitandrun, --, '/mnt/main/games/steam-games/steamapps/common/Proton, -, Experimental/proton', waitforexitandrun, %USER_PROFILE%/.local/share/faforever/bin/ForgedAlliance.exe, /init, init.lua, /nobugreport, /log, %USER_PROFILE%/.faforever/logs/game_22351835.log, /gpgnet, 127.0.0.1:34085, /mean, 1500.0, /deviation, 500.0, /savereplay, gpgnet://127.0.0.1:42635/22351835/XXXX.SCFAreplay, /country, XX, /numgames, 0, /numgames, 0] in directory: %USER_PROFILE%/.local/share/faforever/bin
pressure-vessel-wrap[400314]: W: Found more than one possible libdrm data directory from provider
2024-04-24T16:38:47.770+03:00  INFO 265267 --- [FAF Client] [onPool-worker-5] com.faforever.client.game.GameRunner     : Forged Alliance terminated with exit code 0

Additionally, experience suggests that the issue could have stemmed from running the game on a non-default steam library, but moving the game over from my HDD onto my boot drive, re running the setup script and trying again resulted in the exact same result.

I am at my wit's end here, I have no idea what's causing the issue and where to look further for any additional clues.

fufexan commented 3 months ago

@chayleaf

chayleaf commented 3 months ago

The legacy setup only works for Wine, not Proton. Not new Proton versions at least, it may or may not work with an old Proton version. Please tell me what "being unable to use non-legacy wizard" means and I may be able to help you.

nojusr commented 3 months ago

Please tell me what "being unable to use non-legacy wizard" means and I may be able to help you. 24-04-27_174407

I was referring to the "legacy setup" in your previous comment. The directory /tmp/proton_nojus/run does not exist and does not get created when I run the game through steam with the provided launch options.

Which version of proton are you using?

chayleaf commented 3 months ago

I see, this env var got removed: https://github.com/ValveSoftware/Proton/issues/7575

In the meanwhile, you can either use Proton 8, or manually put the following script where the setup script excepts it to be:

#!/usr/bin/env bash

__PROTON="/path/to/proton"
__STEAMAPPS="/path/to/steamapps"
__STEAM="${XDG_DATA_HOME:-$HOME/.local/share}/Steam"

cd "$__STEAMAPPS/common/Supreme Commander Forged Alliance" || exit
DEF_CMD=("$__STEAMAPPS/common/Supreme Commander Forged Alliance/bin/SupremeCommander.exe")
PATH="$__PROTON/files/bin/:/usr/bin:/bin" \
    TERM="xterm" \
    WINEDEBUG="-all" \
    WINEDLLPATH="$__PROTON/files/lib64/wine:$__PROTON/files/lib/wine" \
    LD_LIBRARY_PATH="$__PROTON/files/lib64/:$__PROTON/files/lib/:/usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu/aliases:/usr/lib/pressure-vessel/overrides/lib/i386-linux-gnu/aliases" \
    WINEPREFIX="$__STEAMAPPS/compatdata/9420/pfx/" \
    WINEFSYNC="1" \
    SteamGameId="9420" \
    SteamAppId="9420" \
    WINEDLLOVERRIDES="steam.exe=b;dotnetfx35.exe=b;dotnetfx35setup.exe=b;beclient.dll=b,n;beclient_x64.dll=b,n;d3d11=n;d3d10core=n;d3d9=n;dxgi=n;d3d12=n;d3d12core=n" \
    STEAM_COMPAT_CLIENT_INSTALL_PATH="$__STEAM" \
    WINE_LARGE_ADDRESS_AWARE="1" \
    GST_PLUGIN_SYSTEM_PATH_1_0="$__PROTON/files/lib64/gstreamer-1.0:$__PROTON/files/lib/gstreamer-1.0" \
    WINE_GST_REGISTRY_DIR="$__STEAMAPPS/compatdata/9420/gstreamer-1.0/" \
    MEDIACONV_AUDIO_DUMP_FILE="$__STEAMAPPS/shadercache/9420/fozmediav1/audiov2.foz" \
    MEDIACONV_AUDIO_TRANSCODED_FILE="$__STEAMAPPS/shadercache/9420/transcoded_audio.foz" \
    MEDIACONV_VIDEO_DUMP_FILE="$__STEAMAPPS/shadercache/9420/fozmediav1/video.foz" \
    MEDIACONV_VIDEO_TRANSCODED_FILE="$__STEAMAPPS/shadercache/9420/transcoded_video.foz" \
    "$__PROTON/files/bin/wine64" c:\\windows\\system32\\steam.exe "${@:-${DEF_CMD[@]}}"
nojusr commented 3 months ago

Thanks, manually setting up the script you gave for Proton 9.0 worked

chayleaf commented 1 month ago

umu (https://github.com/Open-Wine-Components/umu-launcher) can be used now, but it has to be in user's PATH to work. I guess I'll get around to updating the setup script later.