Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Native Linux Games Won't Show SteamTinkerLaunch Wait Requester in Steam Deck Game Mode #630

Closed
sonic2kk opened this issue Oct 15, 2022 · 11 comments
Labels
Steam Deck Issues related to using SteamTinkerLaunch on Steam Deck Third-Party Limitation Limitations and/or bugs caused by third-party software.

Comments

@sonic2kk
Copy link
Owner

System Information

  • SteamTinkerLaunch version: v11.12.20221005 (latest git at time of writing)
  • Distribution: SteamOS 3.3.2 + Steam Client Beta
  • Installation Method: Manual

Issue Description

Launching native Linux games with the Steam Launch Option won't show the SteamTinkerLaunch Wait Requester in Game Mode, making the rest of the UI inaccessible. Launching native games hangs at the Steam Deck's pre-game "loading" screen for significantly longer than a regular game launch, and then the game starts without showing the SteamTinkerLaunch wait requester to give access to the rest of the menus.

This only happens in Game Mode. In Desktop Mode, without modifying the launch options, the game launches and shows the SteamTinkerLaunch wait requester no problem. The launch option I am using is /home/deck/stl/prefix/steamtinkerlaunch %command%, and I have verified that this path is accurate. Entering the path in Desktop Mode for another native game and launching it worked, then without modifying the launch options at all, launching the same game in Game Mode prevents the wait requester from showing up.

I have tested this with Terraria and Factorio (though Factorio is not a great experience handheld it works fine connected to another display with a keyboard+mouse). The log I have attached is from Terraria. I have verified that both of these games run natively on Steam Deck. When launching without any launch option they start up blazing fast. With the launch option, it hangs on the "loading" screen, where the Steam logo has the little loading circle. It stays here for roughly about 20 seconds and then the game launches anyway. In Desktop Mode the game launches perfectly fine, so this only affects Game Mode.

I noticed this problem a little while ago, maybe about a month ago, but didn't get a chance to investigate too deeply to see if maybe I messed something up. I can't really see anything wrong in the logs, even the launch command looks identical between my PC and my Steam Deck in Game Mode. I have attached the logs for both my Steam Deck launch attempt in Game Mode, and the log from launching the game on my Desktop PC.

Logs

terraria - steam deck game mode.log
terraria - PC.log

@sonic2kk sonic2kk added bug Something isn't working Steam Deck Issues related to using SteamTinkerLaunch on Steam Deck labels Oct 15, 2022
@sonic2kk
Copy link
Owner Author

I've got a few other things to dig into so I'm not sure when I'll get around to this, but anyone else, feel free to take a look and if you can fix it, you're welcome to get a PR up!

@Plamper

This comment was marked as off-topic.

@sonic2kk
Copy link
Owner Author

sonic2kk commented Oct 22, 2022

@Plamper please open a separate issue with more details and a log file :-) Also, if you recently installed SteamTinkerLaunch (~the last day) try reinstalling. There were a couple of small hiccups (script wasn't marked as executable in one commit for some reason, some locale stuff broke).

Please also include the full name of your game as it appears in your Steam library in your issue (for example, "LEGO® Star Wars™: The Skywalker Saga")

@sonic2kk
Copy link
Owner Author

sonic2kk commented Oct 23, 2022

Increasing the Wait Requester causes the game to hang on the loading screen for approximately as long as the wait requester should appear. It seems like, for some reason, in Game Mode the wait requester can't show up.

It gets as far as Opening Requester with timeout 'blah', then runs setGPfxFromAppMa, then shows the timeout log, then moves onto Prepare Launch.

Somewhere in-between these steps, something goes wrong. On Desktop, directly after setGPfxFromAppMa gets called, we get:

Sat Oct 15 22:46:29 BST 2022 INFO - getRes - Detected screen resolution '1920x1080'
Sat Oct 15 22:46:29 BST 2022 INFO - pollWinRes - Using GEOM '--geometry=1440x810+0+0' from '/home/user/.config/steamtinkerlaunch/guicfgs/1920x1080/105600/SteamTinkerLaunch-OpenSettings.conf'

These aren't logged at all on Steam Deck. In the askSettings function, the relevant block is around here:

if [ "$WAITEDITOR" -gt 0 ]; then
    writelog "INFO" "${FUNCNAME[0]} - Opening Requester with timeout '$WAITEDITOR'"

    getAvailableCfgs
    fixShowGnAid
    export CURWIKI="$PPW/Wait-Requester"
    TITLE="${PROGNAME}-OpenSettings"
    pollWinRes "$TITLE"

    setShowPic
   # ...

Everything here should be getting called, since we get that first logging line. We also get logging at setShowPic. It's the pollWinRes function where I think things start to get messed up. We get no logging at all from here, and we should be getting something. The only time we wouldn't get any logging from this function is if $FIXGAMESCOPE was 0. There is logigng in each conditional in this function under this check, and none of these logs come through.

On Desktop, we call getScreenRes which gives us the logging shown above under getRes and pollWinRes, but this isn't called on Steam Deck.

Maybe $FIXGAMESCOPE isn't being used correctly for native games? I'll add some logging and dig into that, but I feel like that would've been caught before now. $FIXGAMESCOPE isn't being set at all for native games. Also, steamdedeckt doesn't seem to be called at all for native games in Game Mode, either.

I'll need to do some more testing and comparing logs between running in Game Mode and running in Desktop Mode on Steam Deck. If memory serves, steamdedeckt is called correctly in Desktop Mode (the notifier was working and so on I believe). I want to fix this before the next release, but no ETA on when this might be fixed.

@sonic2kk sonic2kk added the help wanted Features/Bug Fixes that welcome contributions label Oct 24, 2022
@sonic2kk
Copy link
Owner Author

It just occurred to me that this could be a "bug" (or "feature" 😛) of Game Mode on Steam Deck. Would be worth writing a test Yad script and adding that as a custom command, and seeing if it shows up at all in Game Mode. That would help narrow down the problem, since STL is being called but the UI is never appearing.

@sonic2kk
Copy link
Owner Author

SteamOS 3.4 is coming soon, I wonder if this will perhaps address this?

Haven't gotten around to testing a Yad script yet to see if this is just a native game quirk / bug or if this is a SteamTinkerLaunch issue

@sonic2kk
Copy link
Owner Author

I have not tested SteamOS 3.4 but I am on the Steam Client Beta, and I tested again just now. The issue is unfortunately still present.

I also still have not tested a standalone Yad script but I would venture to guess that the issue would be present with just a simple Yad script as well.

@sonic2kk
Copy link
Owner Author

Unfortunately this is still an issue with SteamOS 3.4.

I have no idea how to fix this, so contributions to fix it would be welcome from someone more familiar!

@sonic2kk
Copy link
Owner Author

Hmm, I wonder if this is related to the Steam Linux Runtime. Native games are forced to run with the Steam Linux Runtime, which means STL as a launch option is probably running inside of the SLR on Steam Deck Game Mode. This should also explain why it works just fine in Desktop Mode and only fails in Game Mode.

Two further tests should help confirm this:

  • Using Steam-Play-None as the compatibility tool on Steam Deck, which forces running the native game directly without the SLR
  • Enforcing the Steam Linux Runtime as a compatibility tool on a regular Linux Desktop / Steam Deck Desktop Mode and seeing if passing SteamTinkerLaunch as a launch command fails

Another possible test is to try this in Steam Deck Game Mode with Non-Steam Games, which should also not use the SLR.

@sonic2kk
Copy link
Owner Author

Unfortunately none of what I proposed fixed the issue 😦 Native games just don't seem to work in Steam Deck Game Mode and I can't figure out why...

@sonic2kk sonic2kk added Third-Party Limitation Limitations and/or bugs caused by third-party software. and removed bug Something isn't working labels Aug 2, 2023
@sonic2kk
Copy link
Owner Author

Still an issue on SteamOS 3.5.7. I suspect it's something to do with reading executable files via doorstop but we can't fix that, so I'm closing this as an upstream problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Steam Deck Issues related to using SteamTinkerLaunch on Steam Deck Third-Party Limitation Limitations and/or bugs caused by third-party software.
Projects
None yet
Development

No branches or pull requests

2 participants