Millennium icon indicating copy to clipboard operation
Millennium copied to clipboard

[Bug] Games failing to launch on higher proton versions

Open MelodyyUwU opened this issue 1 year ago • 8 comments

Before Reporting

  • [X] I found no existing issues matching my bug
  • [X] My issue is not caused by a theme

Describe the Bug

When I try to launch some games under Linux, with proton e.g. experimental, 8, 9, and umu (these I tested), the game fails to launch. Not all games, somehow, are affected by this, though. I can launch, from what I checked, most native games and some other windows-only games under proton experimental for example, but not Mount and Blade Warband and others.

Games appear to load, but then they close themselves, without even loading the main menu or anything.

They worked with proton 4.11 though. None of this happens on normal Steam

Expected Behavior

Game launches normally without issue and runs like normal

Steps To Reproduce

  1. Enter Steam with millenium
  2. Try launching Mount and Blade Warband, Orcs Must Die (1 and 2) and some other games with high proton versions
  3. Game does not load

Operating System

Linux

Anything else?

Log for M&B Warband is here:

STEAM fsync: up and running.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM /home/filip/.local/share/Steam/steamapps/common/Proton - Experimental/files/bin/wine: error while loading shared libraries: libpython-3.11.8.so: cannot open shared object file: No such file or directory
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM regsvr32: Successfully unregistered DLL 'C:\windows\\Microsoft.NET\Framework64\v4.0.30319\diasymreader.dll'
STEAM /home/filip/.local/share/Steam/steamapps/common/Proton - Experimental/files/bin/wine: error while loading shared libraries: libpython-3.11.8.so: cannot open shared object file: No such file or directory
STEAM /home/filip/.local/share/Steam/steamapps/common/Proton - Experimental/files/bin/wine: error while loading shared libraries: libpython-3.11.8.so: cannot open shared object file: No such file or directory
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM /home/filip/.local/share/Steam/steamapps/common/Proton - Experimental/files/bin/wine: error while loading shared libraries: libpython-3.11.8.so: cannot open shared object file: No such file or directory
STEAM wine: configuration in L"/home/filip/.local/share/Steam/steamapps/compatdata/48700/pfx" has been updated.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM /home/filip/.local/share/Steam/steamapps/common/Proton - Experimental/files/bin/wine: error while loading shared libraries: libpython-3.11.8.so: cannot open shared object file: No such file or directory
STEAM chdir "/home/filip/.local/share/Steam/steamapps/common/MountBlade Warband"
STEAM Adding process 48219 for gameID 48700
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM fsync: up and running.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM Setting breakpad minidump AppID = 48700
STEAM Steam_SetMinidumpSteamID:  Caching Steam ID:  76561199157681644 [API loaded no]
STEAM /home/filip/.local/share/Steam/steamapps/common/Proton - Experimental/files/bin/wine: error while loading shared libraries: libpython-3.11.8.so: cannot open shared object file: No such file or directory
STEAM pid 48326 != 48325, skipping destruction (fork without exec?)
STEAM Game 48700 created interface STEAMAPPLIST_INTERFACE_VERSION001 / AppList
STEAM Game 48700 created interface STEAMAPPS_INTERFACE_VERSION008 / Apps
STEAM Game 48700 created interface STEAMHTMLSURFACE_INTERFACE_VERSION_004 / HTMLSurface
STEAM Game 48700 created interface STEAMHTTP_INTERFACE_VERSION002 / HTTP
STEAM Game 48700 created interface STEAMINVENTORY_INTERFACE_V002 / Inventory
STEAM Game 48700 created interface STEAMMUSICREMOTE_INTERFACE_VERSION001 / MusicRemote
STEAM Game 48700 created interface STEAMMUSIC_INTERFACE_VERSION001 / Music
STEAM Game 48700 created interface STEAMPARENTALSETTINGS_INTERFACE_VERSION001 / ParentalSettings
STEAM Game 48700 created interface STEAMREMOTESTORAGE_INTERFACE_VERSION014 / RemoteStorage
STEAM Game 48700 created interface STEAMSCREENSHOTS_INTERFACE_VERSION003 / Screenshots
STEAM Game 48700 created interface STEAMUGC_INTERFACE_VERSION010 / UGC
STEAM Game 48700 created interface STEAMUSERSTATS_INTERFACE_VERSION011 / UserStats
STEAM Game 48700 created interface STEAMVIDEO_INTERFACE_V002 / Video
STEAM Game 48700 created interface SteamController006 / Controller
STEAM Game 48700 created interface SteamFriends015 / Friends
STEAM Game 48700 created interface SteamMatchMaking009 / Matchmaking
STEAM Game 48700 created interface SteamMatchMakingServers002 / MatchmakingServers
STEAM Game 48700 created interface SteamNetworking005 / Networking
STEAM Game 48700 created interface SteamUser019 / User
STEAM Game 48700 created interface SteamUtils009 / Utils
STEAM Game 48700 method call count for IClientAppManager::GetCurrentLanguage : 1
STEAM Game 48700 method call count for IClientAppManager::GetAvailableLanguages : 1
STEAM Game 48700 method call count for IClientAppManager::GetAppInstallDir : 2
STEAM Game 48700 method call count for IClientAppManager::GetAppInstallState : 2
STEAM Game 48700 method call count for IClientUtils::RecordSteamInterfaceCreation : 22
STEAM Game 48700 method call count for IClientUtils::GetSteamUILanguage : 1
STEAM Game 48700 method call count for IClientUtils::GetAppID : 24
STEAM Game 48700 method call count for IClientUser::GetSteamID : 1
STEAM Uploaded AppInterfaceStats to Steam
STEAM Removing process 48219 for gameID 48700

Log for a working game (Gang Beasts) is here:

STEAM Fossilize INFO: Autogroup scheduling is not enabled on this kernel. Will rely entirely on nice().
STEAM chdir "/home/filip/.local/share/Steam/steamapps/common/Gang Beasts"
STEAM Adding process 50179 for gameID 285900
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM fsync: up and running.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM Setting breakpad minidump AppID = 285900
STEAM Steam_SetMinidumpSteamID:  Caching Steam ID:  76561199157681644 [API loaded no]
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM wine: using kernel write watches, use_kernel_writewatch 1.
STEAM Fossilize INFO: Overriding serialization path: "/home/filip/.local/share/Steam/steamapps/shadercache/285900/fozpipelinesv6/steamapprun_pipeline_cache".
STEAM wine: setpriority -10 for pid -1 failed: 3
STEAM wine: setpriority -2 for pid -1 failed: 3
STEAM wine: setpriority -10 for pid -1 failed: 3
STEAM wine: setpriority -2 for pid -1 failed: 3
STEAM wine: setpriority 3 for pid -1 failed: 3
STEAM wine: setpriority 3 for pid -1 failed: 3
STEAM wine: setpriority 3 for pid -1 failed: 3
STEAM wine: setpriority 3 for pid -1 failed: 3
STEAM wine: setpriority 3 for pid -1 failed: 3
STEAM wine: setpriority 3 for pid -1 failed: 3
STEAM wine: setpriority 3 for pid -1 failed: 3
STEAM wine: setpriority 3 for pid -1 failed: 3
STEAM wine: setpriority 3 for pid -1 failed: 3
STEAM wine: setpriority 3 for pid -1 failed: 3
STEAM wine: setpriority 3 for pid -1 failed: 3
STEAM wine: setpriority 3 for pid -1 failed: 3
STEAM wine: setpriority 2 for pid -1 failed: 3

MelodyyUwU avatar Sep 28 '24 11:09 MelodyyUwU

How is this related to Millennium? Does this only occur when Steam is launched through Millennium?

shdwmtr avatar Sep 28 '24 14:09 shdwmtr

like I written, yes, without it I have no such issues, meaning this must be a millenium issue, and themes didnt impact anything

ghost avatar Sep 28 '24 17:09 ghost

Ah, I missed that tidbit near the bottom.

try replacing your start script with this

#!/bin/bash

# This function filters out the error message "from LD_PRELOAD cannot be preloaded" from 64 bit executables 
# The messages are just failing module side effects and not fatal. 
filter_output() {
    local pattern='from LD_PRELOAD cannot be preloaded'
    while IFS= read -r msg; do
        if [[ ! "$msg" =~ $pattern ]]; then
            printf '%s\n' "$msg"
        fi
    done
}

steam_output() {
    while IFS= read -r msg; do
        printf '%s\n' "$msg"
    done
}

exec 3>&1 # Save a copy of file descriptor 1 (stdout) so we can restore it later
exec 1> >(filter_output) # Redirect stdout to filter_output

export STEAM_RUNTIME_LOGGER=0 # On archlinux, this needed to stop stdout from being piped into /dev/null instead of the terminal
export LD_PRELOAD="$HOME/.millennium/libMillennium.so${LD_PRELOAD:+:$LD_PRELOAD}" # preload Millennium into Steam
export LD_LIBRARY_PATH="$HOME/.millennium/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"

# Millennium hooks __libc_start_main to initialize itself, which is a function that is called before main. 
# Besides that, Millennium does not alter Steam memory and runs completely disjoint.

bash steam > >(steam_output) 2>&1 "$@"

See if that changes anything.

shdwmtr avatar Sep 28 '24 21:09 shdwmtr

Indeed it does, it does not load Millenium this way anymore. If steam is changed back to ~/.steam/steam/steam.sh it loads again of course and of course with the same issue, since that is the same script practically as the one already provided with first setup.

ghost avatar Sep 29 '24 13:09 ghost

I'm not on my linux system right now, but it's possible to figure out what steam points to, it may run other scripts before ~/.steam/steam/steam.sh that are needed with proton.

shdwmtr avatar Sep 29 '24 17:09 shdwmtr

do you mean whereis?

ghost avatar Sep 29 '24 17:09 ghost

No, I talking about what the executable steam does when it runs. I'm relatively sure it runs stuff before ~/.steam/steam/steam.sh. you could probably monitor what scripts are running when you start steam normally and figure it out that way.

I might take a look in the next coming days but I'm pretty busy.

shdwmtr avatar Sep 29 '24 18:09 shdwmtr

By looking at the logs themselves there are differences in the second part during the runtime of steam.

Running steam with steam command produces this log:

/home/filip/.themes/Nordic-darker-v40/gtk-2.0/apps/chrome.rc:50: error: invalid string constant "button", expected valid string constant
/home/filip/.themes/Nordic-darker-v40/gtk-2.0/apps/xfce.rc:78: error: invalid string constant "entry", expected valid string constant
XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xdeee2dc0
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xdeee1500
steamwebhelper.sh[157988]: Using supervisor /home/filip/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/bin/steam-runtime-supervisor
steamwebhelper.sh[157988]: Starting steamwebhelper under bootstrap sniper steam runtime via /home/filip/.local/share/Steam/ubuntu12_64/steam-runtime-sniper.sh
steamwebhelper.sh[157988]: Using CEF sandbox \(try with -no-cef-sandbox if this fails\)
steamwebhelper.sh[157988]: Starting steamwebhelper with Sniper steam runtime at /home/filip/.local/share/Steam/ubuntu12_64/steam-runtime-sniper/_v2-entry-point
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 158125
bus_name=com.steampowered.PressureVessel.LaunchAlongsideSteam
exec ./steamwebhelper -lang=en_US -cachedir=/home/filip/.local/share/Steam/config/htmlcache -steampid=157954 -buildid=1726604483 -steamid=0 -logdir=/home/filip/.local/share/Steam/logs -uimode=7 -startcount=0 -userdatadir=/home/filip/.local/share/Steam/config/cefdata -steamuniverse=Public -realm=Global -clientui=/home/filip/.local/share/Steam/clientui -steampath=/home/filip/.local/share/Steam/ubuntu12_32/steam -launcher=0 -no-restart-on-ui-mode-change --valve-enable-site-isolation --remote-debugging-port=8080  --remote-debugging-address=127.0.0.1  --enable-smooth-scrolling --password-store=basic --log-file=/home/filip/.local/share/Steam/logs/cef_log.txt --disable-quick-menu --enable-features=PlatformHEVCDecoderSupport --disable-features=SpareRendererForSitePerProcess,DcheckIsFatal
BRefreshApplicationsInLibrary 1: 0ms
Desktop state changed: desktop: { pos:    0,   0 size: 1920,1080 } primary: { pos:    0,   0 size: 1920,1080 }
BuildCompleteAppOverviewChange: 249 apps
RegisterForAppOverview 1: 10ms
RegisterForAppOverview 2: 10ms

And running steam with the above script produces this log:

/home/filip/.themes/Nordic-darker-v40/gtk-2.0/apps/chrome.rc:50: error: invalid string constant "button", expected valid string constant
/home/filip/.themes/Nordic-darker-v40/gtk-2.0/apps/xfce.rc:78: error: invalid string constant "entry", expected valid string constant
XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xdcc09dc0
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xdcc08500
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 159916
bus_name=com.steampowered.PressureVessel.LaunchAlongsideSteam
BRefreshApplicationsInLibrary 1: 0ms
Desktop state changed: desktop: { pos:    0,   0 size: 1920,1080 } primary: { pos:    0,   0 size: 1920,1080 }
BuildCompleteAppOverviewChange: 249 apps
RegisterForAppOverview 1: 12ms
RegisterForAppOverview 2: 13ms

Not sure if that changes anything, but it is as much as I could observe for now because im gonna be busy

ghost avatar Sep 29 '24 18:09 ghost

Since the time it was last reported (29 September) the issue has since resolved on millennium version v2.13.1. I was able to successfully launch several games that I had problems with. And so, I find this issue resolved for the time being. Whatever you did fixed it. I have no idea when it fixed, but it works as of this version as I said.

ghost avatar Nov 07 '24 18:11 ghost

I come here to report that I was not able to launch Among Us through Millenium. I tried multiple Proton versions and launch options from protondb but nothing fixed it. It was only when I tried to launch Steam without Millenium that everything worked perfectly without any launch options or issues at all. I have the proton log from the failed launch attempts through Millenium: https://paste.ivr.fi/azonutetin.mk It may very well be possible this has been non functional for some longer time as I only really play CS2 and that runs natively on Linux.

bl4zee1g avatar Jan 03 '25 13:01 bl4zee1g

I come here to report that I was not able to launch Among Us through Millenium. I tried multiple Proton versions and launch options from protondb but nothing fixed it. It was only when I tried to launch Steam without Millenium that everything worked perfectly without any launch options or issues at all. I have the proton log from the failed launch attempts through Millenium: https://paste.ivr.fi/azonutetin.mk It may very well be possible this has been non functional for some longer time as I only really play CS2 and that runs natively on Linux.

have you tried my workaround of launching steam first and then millennium? it seems not really related to this but its worth a try

ghost avatar Jan 03 '25 13:01 ghost