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

⚠ Steam Deck support #272

Closed
Faalagorn opened this issue Jul 22, 2021 · 163 comments
Closed

⚠ Steam Deck support #272

Faalagorn opened this issue Jul 22, 2021 · 163 comments
Labels
Steam Deck Issues related to using SteamTinkerLaunch on Steam Deck

Comments

@Faalagorn
Copy link
Contributor

Since there's been quite some hype with Valve announcing Steam Deck, how do you think support for Steam Deck and/or controllers especially on Steam Big Picture could work? Are you planning on supporting Steam deck and/or investigating this matter further @frostworx?

@frostworx
Copy link
Collaborator

frostworx commented Jul 22, 2021

Thanks for bringing this up @Faalagorn!
I ordered reserved :) one, so I'm very interested in compatibility.
No idea how much time I find, but I consider rebasing the gui (so far yad offers the required functions)
for easy (touch) control in smaller resolutions.
I thought of some globally configurable beginner/advanced/expert gui option (similar like kodi has)
Every possible configuration option will be in one of those, and depending on the selected option it will be either visible or not.
The default value could be based on the current screen resolution, so it with a Steam Deck (1280x800) resolution detected it would start in beginner mode.

As usual any further ideas are welcome of course :)

@Faalagorn
Copy link
Contributor Author

Thanks for bringing this up @Faalagorn!
I ordered one, so I'm very interested in compatibility.

I guess you mean reserved as at that point even dev kits aren't there yet, but yeah, it's going to be an interesting device :)

There's also revamp to big picture UI coming, apparently, so we'll see. I imagine having stl on Steam Deck could be even more useful than desktop (since all the optimizations are important there)

@frostworx
Copy link
Collaborator

Agreed, for optimizations it is probably more useful than on desktop, but other features are useful on all platforms equally :)

@frostworx
Copy link
Collaborator

fyi wip Steam Deck wiki entry (will be committed when most major open issues are ready):

Steam Deck

If nothing fundamentally changes until the Steck Deck is released, I assume that stl will work on it from day one.

There's not much which can be prepared for now:

  • collect some ideas in an extra issue tracker
  • add some "Steam Deck (1280x800)" resolution templates (done)
  • Steam Deck is said to use wayland, so make sure that all windows work on wayland (already fixed that in 20.11, it probably still works)
  • I think it is very likely that the Steam Deck can be used as additional VR input device in the future (completely usable in VR, including live stream of it's display)
    So it might make sense to add a special "live-changeable" settings into a seperate "Steam Deck menu"
  • more (depending on the possibilities)

It might be necessary to restructure the main windows, to be better touch-control friendly on a 1280x800.
Ideas/mockups please into above tracker

@Faalagorn
Copy link
Contributor Author

Steam Deck is said to use wayland, so make sure that all windows work on wayland (already fixed that in 20.11, it probably still works)

Do you have any source for the Wayland part? I was curious about it, seeing how most Linux distros push it nowadays, though I got impression an impression Valve didn't (gamescope was always focused on Xorg and Steam client isn't supporting Wayland natively yet (see ValveSoftware/steam-for-linux#4924 ) plus it has a baggage of old libraries (GTK2 et al) and prior to that, they did contribute fixes for Xorg (though they were mostly VR related IIRC)

@frostworx
Copy link
Collaborator

Not directly. Just have seen some wayland related steam deck hype train posts on r/linux_gaming.
Haven't read more than the topics though, so it might have just been as well some random click my spam posts.
Either way, it might be nice to keep wayland compatibility steam deck independent,
as it was pretty much work to rework the menu to make it compatible.

@UltraBlackLinux
Copy link

The problem with this is, that - as far as I know - the steam deck is pretty locked up and you can't even really get access to root/sudo

@frostworx
Copy link
Collaborator

I doubt that root access is locked. This would force literally every "serious" linux gamer away.

@Faalagorn
Copy link
Contributor Author

The problem with this is, that - as far as I know - the steam deck is pretty locked up and you can't even really get access to root/sudo

That would be weird, especially as they openly say that you can install whatever you want on it (incl. Windows)
Do you have any source for that?.

I genuinely wonder about under the hood software (I only know that it will use KDE Plasma and will be based-off Arch, it's been said so here: https://www.steamdeck.com/en/tech ).

AFAIK the dev kits weren't sent yet, unless I missed something. I know IGN have prototype to test, I'm not up to date with their latest videos, but not sure if they said anything about software running on it yet (if they will at all).

@UltraBlackLinux
Copy link

UltraBlackLinux commented Jul 28, 2021

tbh my source was a post from r/linuxmemes

yes yes very genuine source

@frostworx frostworx changed the title Steam Deck and gamepad support Steam Deck support Aug 19, 2021
@frostworx
Copy link
Collaborator

won't add any input driver support directly, so renamed the issue accordingly

@Velgus
Copy link

Velgus commented Mar 6, 2022

If it's possible, it might be nice to have a Flatpak.

SteamOS, by default, has a read-only root filesystem. You do have root access (the default account is an admin account), and it is possible to work around this, but for many users, they won't be interested in having to regularly make the necessary changes to use AUR every time a SteamOS update is released.

Also, if anyone wants to test how things work on SteamOS, and doesn't have a Deck, they have released the Steam OS 3 recovery image.

@frostworx
Copy link
Collaborator

Of course everybody is still welcome to contribute flatpak support.

@frostworx
Copy link
Collaborator

#431

@frostworx
Copy link
Collaborator

WIP SteamDeck Wiki (happy suggesting!):

Steam Deck

So the SteamDeck is more or less available and fortunately my wife was lucky enough to get one early (for me :))

Currently (2022.03) it is possible to install custom packages systemwide (f.e. using the regular Arch Linux package management using pacman),
but as any custom changes will be lost after a "firmware" update, installing steamtinkerlaunch and its dependencies systemwide is not sane option.

The alternative idea is, to use a special SteamDeck detect function, which automatically changes several configuration options required for the SteamDeck
and also installs missing dependencies into a seperate directory within the home directory.
Fortunately most hard-dependencies are already preinstalled in the official steamos installation, so just a few additional packages need to be installed.
(of course you're still invited to contribute flatpak support)

How to install on SteamDeck

Simply download the main steamtinkerlaunch script and start it as deck user.
(the downloaded script can be removed afterwards, as it creates a new full installation itself - see below)

The script will automatically configure everything required to make using steamtinkerlaunch a seamless experience on the SteamDeck:

  • the script will create a new full steamtinkerlaunch installation into the /home/deck/stl/prefix/ by cloning the current master from the steamtinkerlaunch` git project
  • (for now) this installation will always be updated to the latest commit automatically on every steamtinkerlaunch launch
  • missing dependencies (maybe also some optional) will be automatically downloaded and installed and extracted into /home/deck/stl/deps/ and the PATH is expanded using it automatically
  • yad, the main missing dependency, will be automatically installed from the default AppImage into /home/deck/stl/deps/
  • steamtinkerlaunch will be automatically added a "Steam Compatibility Tool" by using a symlink to the steamtinkerlaunch executable in the /home/deck/stl/prefix/ directory
  • the default resolution for all steamtinkerlaunch windows without a resolution preset will be 1280x800 (SteamDeck screen resolution)
  • all notifiers are automatically disabled, they seem to conflict with Steam running
  • probalby multiple things are still missing in above list
  • some features might not be available at all on the SteamDeck(?)

For SteamDeck related issues, suggestions, discussions please use this extra Steam Deck issue
(for flatpak this one)

@frostworx
Copy link
Collaborator

Is there a built-in tool (or alternatively an external one with few to none dependencies) which can map the joypad buttons to keyboard presses programmatically?

@zany130
Copy link
Collaborator

zany130 commented Mar 29, 2022

I think you can do that with steam input no? you can even do a desktop profile that applies to everything at least you can in the standard steam client idk in deck

there also these tools which allow you to do that
https://github.com/kozec/sc-controller (has python dep though)

there this one which has less dependencies just qt and sdl2 I think https://github.com/AntiMicroX/antimicroX
plus it's available as a flatpak and an app image I think?

@frostworx
Copy link
Collaborator

yeah, steam input should be possible, but can it be customized programmatically?
I need to map the buttons when steamtinkerlaunch is started and revert to the original mapping when it closes/the game starts.

sc-controller unfortunately is no option as it would pull in too many deps, antimicrox might be sufficient, but I wondered if some minimal tool like xdotool/ydotool/xbindkeys is usable too here.

@zany130
Copy link
Collaborator

zany130 commented Mar 29, 2022

ahh i see what your trying to do so that the deck can have mapping for when only steamtinkerlaunch is running and then revert it when it exits. yeah don't think you can do that with steam input afaik there no way to set a profile on the fly like that antimicrox definitely would work but a minimal tool like you said might be better. never worked with them I have used antimicrox though.

BTW if flatpak is still not on your todo list I'm reading up on how to work with it and if I can figure it out I wouldn't mind matining a flatpak for steamtinkerlaunch once I finish classes in April

@frostworx
Copy link
Collaborator

I only found an ancient tutorial which could be automated easily, but as this would require a steam restart to take effect, it doesn't help anything.

antimicrox might be an option, but I'm not sure yet, if I want to use it. I once even wanted to add it for automatic game detection, but upstream had other plans or did not understand what I wanted ¯\(ツ)

@frostworx
Copy link
Collaborator

oh, just read your edit after I answered :)
Would be great if you'd contribute flatpak support! Thanks for the offer! 👍
Good luck in April :)

@frostworx
Copy link
Collaborator

fyi: #437

@frostworx
Copy link
Collaborator

frostworx commented Apr 2, 2022

Gamepad mapping:

steam has a steam steam://forceinputappid/$APPID
commandline option, which loads game-specific controller mappings.
This could be a valid solution, by creating a temp mapping (f.e. for a game/tool, which is installed on every Steam Deck - maybe some Proton or Steam Linux Runtime, or even better "Aperture Desk Job").

Mod Organizer 2:

As already documented, Vortex integration works fine, but Mod Organizer 2 doesn't.
Currently the MO2 installer hangs forever with
C:\users\steamuser\Temp\is-83B6Q.tmp\Mod.Organizer-2.4.4.tmp /SL5=$1004C,91338841,822272,Z:\home\deck\.config\steamtinkerlaunch\downloads\mo2\Mod.Organizer-2.4.4.exe /VERYSILENT
(after the DotNet installation worked successfully)

Edit: seems like at least lib32-freetype2 missing on the rootfs seems to be a problem, but expanding the LD_LIBRARY_PATH to an additonal dir in home with its libs, doesn't fix the issue.
The main cause seems to be the global noto-fonts installation, because wine always get stuck with

00c4:fixme:font:find_matching_face Untranslated charset 255
00c4:fixme:font:get_nearest_charset returning DEFAULT_CHARSET face->fs.fsCsb[0] = 00000000 file = L"Z:\\usr\\share\\fonts\\noto\\NotoKufiArabic-Thin.ttf"
[2022-04-02 13:22:54.534 W] Unable to enumerate family ' "Noto Sans Inscriptional Parthian" '

(and a more verbose WINEDEBUG reveals that it is very busy with those fonts already before)

Therefore I'll disable MO2 for Steam Deck fore now.

@TypoTami
Copy link

TypoTami commented Apr 3, 2022

On MO2: The inbuilt MO2 option in stl did not work for me, But I managed to work around this by running MO2's installer with 'other command' and installing it into skyrim:se's prefix. Then changed the 'other command' option to the installed MO2 instance. After wards I copied in SKSE into skyrims folder and SkyUI archive to skyrims's folder, which I was then able to install and run the game with successfully!

skyui

And here it is running in Gamescope/Deck UI!
image

(For this I was using Steam Tinker Launch as a compatibility tool and installed stl via the instructions on the wiki!)

@frostworx
Copy link
Collaborator

Yeah, I disabled MO2 in current git master on purpose, so you do not even have a chance to test it, when you don't change the code.
Did you install any additional packages into your rootfs?
If yes, then this is no option unfortunately (unless they are slim enough to be autodownloaded into a custom dir in home)
if no, then I'd guess that the installer only has issues to be started in silent mode.
Either way, I was able to workaround the installer issue programmatically by using innoextract, but the installation doesn't work here anyway.
How did you workaround the dependency for DotNet 4.8? Or is it no longer required? If so which proton version did you try?

@TypoTami
Copy link

TypoTami commented Apr 3, 2022

Previously I did have an earlier version of STL installed via yay, but that got wipped from a steam update so (I would assume) that the rootfs is clean. I did disable read-only and installed only fakeroot for yay, but yay was throwing out build errors so I opted to follow the new guide on the wiki.

The proton version I was using when Installing MO2 was GE-Proton7-10 added with ProtonUP-QT(flatpak). I set up MO2 as a portable install to C:\Modding\ of the prefix for Skyrim se. I did try setting up an API key for nexus but I'd did not seem to work, but could still select local mods inside the prefix and allowed directory's in pressure-vessel.

Interestingly I did not have to deal with any dependencies for DotNET4.8. (Might be worth ensuring I have that dependency not installed for a sanity check)

Additionally I went and ran the MO2 installer again with both GE-Proton7-10 and proton-7.01b and both opened up fine at a glance.

EDIT: Additionaly I found that when running with proton7.01b: MO2 did launch but Skyrim SE launching through MO2 with SKSE did not.

@frostworx
Copy link
Collaborator

Thanks for the reply.
Good to hear that you did not explicitly install dotnet. Might be worth to recheck if it is no longer required/mono is enough.
This could also explain why the installer works at all.
For now I used a custom self rolled proton, because almost all other proton versions failed to install dotnet correctly (see wiki)
Would be great if that custom proton is no longer required at all. will recheck that soonish

@frostworx
Copy link
Collaborator

Yay, I can confirm that MO2 installs perfectly fine automatically using GE-Proton7-10 without installing dotnet!
This is great news (need to check if Vortex works the same way now)
Thanks for the hint, @UP2010614 - I wouldn't have tested that in the near future for sure! 👍

@sonic2kk
Copy link
Owner

sonic2kk commented Nov 27, 2022

Hedge Mod Manager support is not available in SteamTinkerLaunch v11.11. There is also no SteamTinkerLaunch v11.12

Maybe you're looking for SteamTinkerLaunch-git? It's available in ProtonUp-Qt. If you didn't already enable it, you'll need to enable Advanced Mode to see the option to install it.

Hedge Mod Manager support is only available in SteamTinkerLaunch from git, as there has been no release since it was added - You can see on the releases page that v11.11 is quite old :-)

A new release will come sometime in December or January

@Kitocco
Copy link

Kitocco commented Nov 28, 2022

Hedge Mod Manager support is not available in SteamTinkerLaunch v11.11. There is also no SteamTinkerLaunch v11.12

Maybe you're looking for SteamTinkerLaunch-git? It's available in ProtonUp-Qt. If you didn't already enable it, you'll need to enable Advanced Mode to see the option to install it.

Hedge Mod Manager support is only available in SteamTinkerLaunch from git, as there has been no release since it was added - You can see on the releases page that v11.11 is quite old :-)

A new release will come sometime in December or January

Oooooh, I see, thank you! I was wondering where to get the bleeding-edge version of STL, since trying to install it manually with files & Konsole treated it as if it was already installed (which it was), rather than updating it
But now whenever I try to install it via ProtonUp-Qt Advanced mode or launch it with a game in Steam, it always says "WARNING: No Internet connection - SteamTinkerLauncher will attempt to install offline" from Taskbar notifications, even though my device is connected to the internet. Did I forget some permission in Flatseal?
I think this may be behind why when I try to launch the HMM installation via Konsole with the same command, it tells me steamtinkerlauncher is not a valid command.
I've tried uninstalling STL from ProtonUp-Qt & then re-installing STL-git, to no avail as well.

@sonic2kk
Copy link
Owner

sonic2kk commented Nov 28, 2022

But now whenever I try to install it via ProtonUp-Qt Advanced mode or launch it with a game in Steam, it always says "WARNING: No Internet connection - SteamTinkerLauncher will attempt to install offline" from Taskbar notifications, even though my device is connected to the internet.

That's very strange, I can't reproduce that issue. I'm using ProtonUp-Qt 2.7.4 though, as at the moment I can't update any Flatpaks from Flathub (via Discover or the command line). But even a manual install works fine for me.

I would recommend attempting a manual install, and if you still get errors, you'll need to provide a SteamTinkerLaunch log file. Note that this is not a Konsole log, this is the log file at /dev/shm/steamtinkerlaunch/steamtinkerlaunch.log

EDIT: Just got ProtonUp-Qt to update and I can't reproduce the problem. To check if it's running offline in this instance, SteamTinkerLaunch pings the Arch Linux website (since we need to get packages from them for installation anyway, if they're down there's no point in trying an online install). Maybe the Arch Linux site was down when you tried to install?

And for reference v11.11 doesn't do a check like this. These checks are new in the latest master

I just checked and there was no reported outage. Maybe there was a hiccup on the ISP side?

@Kitocco
Copy link

Kitocco commented Nov 28, 2022

I just checked and there was no reported outage. Maybe there was a hiccup on the ISP side?

Wow, that did the trick! I launched STL on my college wi-fi and it launched just fine! HMM launched a lot more quickly.
Good-for-nothing ISP DNS resolvers... I oughta set the router to NextDNS if I weren't on the free plan.

Now I just wonder how I get d3dcompile_47 winetrick working to get the DX11 mod working, since I recall the wiki here saying it does it automatically, and I selected it in the SteamTinkerLaunch menu under Winetricks' DLL section as I set Sonic Generations' compatibility tool to STL. At what point does it automatically set it, or how do I do it?

Since as of now when I launch with Proton 7.04 it gives the same "No Graphics Device" error I get on a fresh install. Checking the Winetricks option under STL, it tells me that the d3dcompile_47 set is already installed after I was able to install with my college wi-fi

@sonic2kk
Copy link
Owner

sonic2kk commented Nov 28, 2022

Hehe, ISPs can be dumb. Glad it's working though, sorry for that inconvenience!

For the Winetrick, you don't have to do anything actually! You don't need to use SteamTinkerLaunch as a compatibility tool at all for modding HMM games either. The winetrick is installed when you run HMM with Sonic Generations installed - Even if you installed Gens after HMM, STL checks for any needed Winetricks on HMM startup and installs them. So it should all be taken care of, you don't need to do anything else here. It's installed at HMM startup time, so long as you've launched HMM at least once after Generations has installed and also launched at least once (since I believe this is needed for Steam to create the Wineprefix for each game) 😃

You don't have to install the Winetrick but just to be clear, the mod itself is not installed. This winetrick is installed automatically since it's needed for compatibility with the mod. If there are any other reported mode for any other HMM supported games, I plan to include automatic installation for those Winetricks as well - It just so happens that at the moment, this is the only mod I'm aware of that needs any Winetricks 😅

The graphics device error is a game bug with Sonic Generations and one of the core reasons it's marked as Unsupported on Steam Deck. You need to go to the game files and remove the GraphicsConfiguration.ini file I believe it's called, then re-run the launcher. If you connect another screen to your Steam Deck or launch Sonic Generations on another PC, you'll have to do this again.

You can run Sonic Generations with SteamTinkerLaunch of course, but I'm just letting you know that you absolutely do not have to :-) hope that helps!

@chair-handler
Copy link

Hey there, thanks for this awesome tool.

I'm running into a problem when installing Vortex - I'm pretty new to Linux, so I'm having trouble figuring out what I'm doing wrong.

The download seemed to work fine, however when I hit "install" it hangs for a bit, then gives me an error saying that I need to be running Windows 7 or higher to install Vortex. I can't seem to find anyone else with this issue, and I have Vortex enabled in the Game Menu. Currently using GE 7-43.

@sonic2kk
Copy link
Owner

sonic2kk commented Dec 29, 2022

That's a bit of a strange error. Another user reported just general issues getting Vortex to install with GE-Proton7-43, so I would recommend trying GE-Proton7-42. Uninstall Vortex (if there isn't a button, you can go to ~/.config/steamtinkerlaunch and remove the vortex folder) and then in the STL settings you can change the Vortex Proton version, you may need to download GE-Proton7-42, which you can do with STL, manually, or with a tool like ProtonUp-Qt. Either should work fine :-)

Another user reported an issue with MO2 and the Windows version being overwritten in #682, I wonder if these are related.

Either way, I would venture to guess that this is related to GE-Proton7-43. Try uninstalling Vortex and reinstalling it with the slightly older version. Hopefully that fixes it :-) I don't really mod or tinker much on my Steam Deck to conserve space, so I haven't tried Vortex myself on Steam Deck. It did work before though, and some users reported issues with GE-Proton7-43 with MO2 and Vortex in #695. I get the impression from re-reading this issue that Vortex was already installed for that user, which may explain why you are seeing the version error and they did not report that.

@astromediaonly
Copy link

astromediaonly commented Dec 31, 2022

Vortex installed fine for me today on SteamDeck (default options just hit install so Im not sure what version everything is on ... it installed some proton GE for whatever reason but I dont remember which version) ... tho no progressbars ever progressed it was eventually installed. But thats about it. When I try to use it for game (Subnautica Below Zero) it does not find it, I cant add it manually as I have no idea where it is in that file system and I have feeling I cant access the folder where it should be anyway. When launched there is red message about me having broken .NET installation or something like that and every time I click into input field in gamemode it starts to furiously blink and sometimes it leads to complete crash and steam game mode relaunch. Some work on it is still needed Im afraid :) ... but I appretiate the effort to make it work there one day ... keep trying guys, its much needed :)
PS: I also had to launch it in desktop mode once to use browser to login correctly (I have chrome as default and in gamemode it looped in trying to verify Im not botnet page and when cancelled it wanted api-key as second option of login which is longer than ... the point is - there was no way I would write it letter by letter from computer to steamdeck and copying that somehow into game mode is just complete despair :) )

@sonic2kk
Copy link
Owner

sonic2kk commented Dec 31, 2022

Not sure why it can't find that specific game, but you should be able to browse to it manually, no? Just enter the path to the game files the same way you would on Linux Desktop. You should be prompted with a window to browse to the location of the game. I don't know how what kind of file browser Vortex gives but I would assume it's just a standard Wine file browser and you should be able to browse to the game files location.

Also, if it wasn't clear, doing any sort of tinkering like this with or without SteamTinkerLaunch should always be done from Desktop Mode. I also recommend using Firefox instead of Chrome.

It's possible that that game isn't being found because of a naming mismatch. I don't own that game so I can't test it, a patch will need to come from someone that owns it and that can fix it :-) Manually inputting the game path should work though.

I just checked my Vortex installation and the vortexgames.txt, and subnauticabelowzero is listed. It could be a Steam Deck quirk because of a couple of Steam Client bugs that only exist on Steam Deck to do with where the compatdata is created, it could be a Vortex bug, there could be an unending list of things that have gone wrong. So manually adding is your best bet.

@astromediaonly
Copy link

Was able to add it manually - luckily it was on SD card (maybe that was reason it was not found?) so it was easier to navigate to - that weird "old" linux file browser it opens is pain to use (and I think it does not have same access permissions / ability to see hidden folders which I think was problem when accessing games on internal storage) :)

I see, I prefer game mode because its lightweight, compact and easier to use but its sadly limited sometimes - I should probably setup it all the way in desktop mode always first, good point.

Sadly I figured out this game is hard to get working with mods anyways it seems but thats another story, your part seems to work so far, thanks.

@sonic2kk
Copy link
Owner

Glad it's all working :-)

@DIDIK3V1
Copy link

DIDIK3V1 commented Jan 4, 2023

I don't know why but the menu won't open in desktop mode :/
It only open in gaming mode which sucks for vortex mod manager
edit : forget what just said now vortex auto updated itself and doesn't run anymore got an error the first time "window 7 or above required"

@LeviathaninWaves
Copy link

When using D3D11, how can I enable/disable DXVK?

@sonic2kk
Copy link
Owner

sonic2kk commented Jan 10, 2023

You don't really enable/disable DXVK when using Proton, you just "override" it by telling Proton to use WINED3D, which iirc is Wine's built-in OpenGL translation layer. You can enable WINED3D on a per-game basis in the Game Menu under "Proton options" with the "Proton use WineD3D" checkbox. This enables the PROTON_USE_WINED3D=1 flag, which you can find documented under Proton's Runtime Config Options table:

Use OpenGL-based wined3d instead of Vulkan-based DXVK for d3d11, d3d10, and d3d9.

This is not really a Steam Deck problem but a general usage question. Hopefully that answers it though.

@ACiDxCHRiST
Copy link

Please add a way to force stl into offline mode so it stops checking for and downloading the latest copy. I use my SD on satellite internet that has horrible latency and bandwidth, high packet loss and challenging reliability.

Under these conditions, the time it takes stl to progress through all it's steps when I launch a game is horrible. Obviously I can disconnect from the internet and it makes the stl startup a breeze, but that is also an undesirable option.

Will you add a configuration option to stl to force it's offline behavior even if there is a network connection?

@DIDIK3V1
Copy link

DIDIK3V1 commented Feb 16, 2023

As far as I understood auto updates are temporary because steamdeck support is still in beta state

@sonic2kk
Copy link
Owner

sonic2kk commented Feb 16, 2023

@ACiDxCHRiST if you install ProtonUp-Qt it won't auto-update, this is the only option for the moment.

Adding a configuration option is planned for the future. As @DIDIK3V1 pointed out Steam Deck support is still not finalised.

I could take a look at implementing it for the next release, not sure how challenging it could be (probably just a checkbox to skip some stuff, I just need to do it in a "clean" way).

Once #737 and #744 are merged, I will try to make time to investigate having a configuration option for doing update checking. I will also need to consider if it should be "on" by default. Probably I would lean towards no, because a user can always switch to a git release if there is anything that needs fixing urgently (e.g. a dependency needs bumped).

There are a couple of things I will investigate relating to Steam Deck support in general, for example I want to look into #719 (minor issue imo but one I want to find a way to solve), and looking into cleaning up some of the code where possible (a general medium-term goal I have for STL is to improve maintainability, and this falls under it).

All this to say, it may take a while to implement because there are other things I want to look into around this issue. In my head right now I could see a "Major Steam Deck Refactor" PR going out in future where I implement various improvements to Steam Deck support.

Of course, contributions are always welcome on this. I only have so much time and can only work on so many things at once, and given the size of STL community contributions will be vital to the future of the project.

@ACiDxCHRiST
Copy link

ACiDxCHRiST commented Feb 16, 2023

@ACiDxCHRiST if you install ProtonUp-Qt it won't auto-update, this is the only option for the moment.

I saw that multiple times in the documentation/Wiki but it is weird because that has not been my experience. I did install STL v12 through ProtonUp-Qt, but everytime STL runs, the notifier starts rolling through a series of notifications related to downloading the the latest version.

  • Preparing to install STL
  • Downloading the latest STL
  • Adding STL as a compatibility tool
  • Finished installing STL v12
  • Preparing to install STL
  • Downloading the latest STL
  • Adding STL as a compatibility tool
  • Finished installing STL v12

Then the WAIT REQUESTER pops up

On unreliable and slow satellite internet, this process takes a long time and due to packet loss, often the connection can be reset/interrupted leading to this process taking even longer or hanging. Why the notifications suggest that it rolls through the process twice, I have no idea, but it does this consistently. The updating is annoying and disabling WIFI improves the whole process by orders of magnitude. Even if my particular network situation wasn't causing problems, I feel auto-updates/phone-home should be Opt-in from the beginning anyways.

The documentation/Wiki also says ProtonUp-Qt will add STL to $PATH but I have verified that is also not happening. This is on a clean install through flatpak ProtonUp-Qt.
I just found the entry in .bashrc, but I was get "unrecognized command" errors. I meed to investigate this more.

@sonic2kk
Copy link
Owner

sonic2kk commented Feb 16, 2023

The notifier appears but it shouldn't actually be updating, is the STL version actually changing for you when using STL stable?

On unreliable and slow satellite internet, this process takes a long time and due to packet loss, often the connection can be reset/interrupted leading to this process taking even longer or hanging.

As you already mentioned, though I don't think this is representative of many users.

Why the notifications suggest that it rolls through the process twice, I have no idea, but it does this consistently

Already known, low priority to fix though. It's just a visual thing and shouldn't affect functionality.

I just found the entry in .bashrc, but I was get "unrecognized command" errors. I meed to investigate this more.

Just tested on my Steam Deck and its working fine, not sure what the issue is 🤷


I'll get around to fixing the issues eventually, but Steam Deck support is a lower priority. Linux Desktop is the priority as it is what I use the most and and so I develop for it primarily.

If these require fixing urgently for you please feel free to contribute fixes, I would wholly welcome more contributors. SteamTinkerLaunch is my hobby project in my spare time, and I primarily focus developing it and improving/fixing things that I have time for and that I encounter myself. I encourage users of SteamTinkerLaunch to do the same.

@ACiDxCHRiST
Copy link

ACiDxCHRiST commented Feb 16, 2023

The notifier appears but it shouldn't actually be updating, is the STL version actually changing for you when using STL stable?

No, the version is not changing.

As you already mentioned, though I don't think this is representative of many users.

Fair enough

I just found the entry in .bashrc, but I was get "unrecognized command" errors. I meed to investigate this more.

Just tested on my Steam Deck and its working fine, not sure what the issue is 🤷

Whatever the problem was, everything is working as expected now.

I'll get around to fixing the issues eventually, but Steam Deck support is a lower priority. Linux Desktop is the priority as it is what I use the most and and so I develop for it primarily.

If these require fixing urgently for you please feel free to contribute fixes, I would wholly welcome more contributors. SteamTinkerLaunch is my hobby project in my spare time, and I primarily focus developing it and improving/fixing things that I have time for and that I encounter myself. I encourage users of SteamTinkerLaunch to do the same.

👍

@sonic2kk
Copy link
Owner

No, the version is not changing.

Then you have nothing to worry about. Sorry that it takes so long, though running offline is the only stop-gap for the moment.

Whatever the problem was, everything is working as expected now.

Glad to hear it!

@sonic2kk
Copy link
Owner

sonic2kk commented Mar 5, 2023

Seems like the wget dependency is unused, I guess maybe at first SteamOS either didn't ship it or didn't ship a new enough version. But it isn't in the deps folder from what I can see and is never installed in the first place, so likely I will remove wget at some point in the near-ish future.

Adding a toggle for the auto-updating will hopefully come soon-ish (not motivated to look at it right at this moment mainly because developing and testing on Steam Deck is a pain) but I want to thoroughly test it before I add it and ensure it's added in a maintainable way.

There are a couple of things related to Steam Deck that I want to fix up:

  • wget dependency as mentioned
  • the prefix and prefix-temp folders is something I noticed recently that I should fix
  • it isn't really a bug and doesn't impact anything but several users seem to for some reason be confused about the notifier so I may look into improving that in some small way
  • auto-update as a toggle, off by default most likely
  • dependency updating improvements (perhaps by resurrecting Bump Dependencies on Steam Deck #724), but this one is a low priority

No ETA on any of these features, just a rough plan for where I want to go with Steam Deck support. Of course others are welcome to contribute as well to any of these, just send a note here/open an enhancement issue and state that you want to work on it

@SirStig
Copy link

SirStig commented Jun 6, 2023

I have a problem with installing vortex on the steam deck. In the past I have used Pikdums tools which automatically runs through and installed steam tinker launch and vortex. However he moved away from steam tinker launch and uses a bottled Linux version of vortex now which works horribly.

So I deleted all my stuff from him and installed steam tinker launch again. I’ve tried running through the GUI menus and through Konsole to install vortex but it is always stuck and hanging on “Installing Dotnet”.

I’ve restarted my steam deck. Uninstalled and installed again. I tried using ProtonUpQT for installation and also manually by downloading the folder and running commands as described to install. Always the exact same result.

@sonic2kk
Copy link
Owner

sonic2kk commented Jun 6, 2023

Have you tried SteamTinkerLaunch from git? There were several fixes tested by Pikdum and confirmed to work on their end at least up to Vortex 1.8.4. I have not tested because I don't mod on my Steam Deck where I can help it.

If you haven't, you can install from git from ProtonUp-Qt or manually by cloning the repo. Ensure that you're using a fresh install and that in the Global Menu, "Use Steam Linux Runtime" is enabled for Vortex (should be enabled by default). There is no longer a Installing DotNet step in STL-git (see below)

The issue on the Steam Deck is that, for some reason, Vortex requires the Steam Linux Runtime to install and run for some reason.

If in doubt, always use SteamTinkerLaunch from git if you're having issues. You can refer to the changelog to see what has changed. STL used to auto-update to git on Steam Deck but that behaviour has since been changed, and I am looking into ways to toggle it back on to avoid users having to re-download STL. There is no release cycle for STL and the next release will only come once there are enough new features and fixes, or if there's something incredibly urgent that needs fixed immediately :-)

An existing Vortex install may work, but I think you're best trying a fresh install of Vortex. There have been various changes to Vortex since v12.12, the main ones here are:

  • Use the latest stable Vortex by default (with a separate checkbox for pre-releases)
  • Use the Steam Linux Runtime by default to install/run
  • Remove all dotnet installation management (STL used to install dotnet48 and dotnet6, but this is no longer required and so was removed, which speeds up installation time and reduces installation footprint on my PC by a fair amount)
    • dotnet48 is not required though dotnet6 is, however Vortex will prompt you to let it install dotnet6 after you launch it if it isn't installed, so just let Vortex do this and then on the next launch everything should work fine
    • There was briefly an experimental commit which installed dotnetdesktop6 from Winetricks, but there were a couple of issues with this (for Linux Desktop, if Winetricks is installed to /usr, the Steam Linux Runtime can't see it), so now we just let Vortex do it

@navyn007
Copy link

Note - I am new to modding on Steamdeck, new to Linux modding, and new to github, so I do apologise if this isnt the right place, or if I sound a bit daft.

Hiya, I had a question regarding MO2 on the steam deck through STL for Fallout NV.
I was able to download STL using ProtonUp-Qt on the steamdeck successfully. I set it up as a compatibility option for Fallout NV, after which I installed Mod Organiser 2, with all the default settings.

The installation went fine; it detected fallout NV, and I made a portable instance, after which I installed some mods via the program and ticked them in (This is a basic mod list v I verified on my computer before this whole process).

However, when I try to launch the game through MO2, the application gets locked, and nothing proceeds - I then clicked play on the STL play menu, and I got the notification below that the program is launching, but the game doesn't start :(

The STL launcher otherwise launches the game if I don't click MO2. I thought it might have been a mod issue, so I even disabled and tried launching the game from MO2 but to no avail.

Any sugestion?

@sonic2kk
Copy link
Owner

Hi, I'll try to help out!

First off, what version of SteamTinkerLaunch are you using? If you're usng SteamTinkerLaunch v12.12, please update to be on the latest git release. There are likely no specific fixes in SteamTinkerLaunch-git, but as you installed it from ProtonUp-Qt, you can install SteamTinkerLaunch-git with its Advanced Mode enabled (under the "About" menu). This will overwrite your existing SteamTinkerLaunch installation, and it won't remove anything at ~/.config/steamtinkerlaunch by default (which means your MO2 installation will stay in-tact).

However, when I try to launch the game through MO2, the application gets locked, and nothing proceeds - I then clicked play on the STL play menu, and I got the notification below that the program is launching, but the game doesn't start

When you say "the application gets locked", is this when ModOrganizer 2 shows its locked message on its UI? I provided a screenshot below of what I mean.

image

If this is the case, then this means MO2 is aware of the game process running, and that MO2 is following its own expected behaviour. In other words, MO2 is functioning as expected up to the point of running the game process.

If it is after this point that no game executable appears, there are a few things you should check:

  • Ensure you're using the Steam Client Beta to get the latest fixes.
  • Ensure you're using a reasonably recent Proton version, like Proton 8.0, Proton Experimental, or a GE-Proton8-XX build (essentially, make sure you're not using Proton 7 or something 😅)
  • Try launching the game once without SteamTinkerLaunch.
  • Verify that you are launching the game using ModOrganizer 2 in the ModOrganizer 2 Game Mode, where you are prompted to launch the game after clicking the "Play" button from the SteamTinkerLaunch Main Menu. I'm pretty sure you are based on what you've provided, but just something to check first and foremost.
  • If you're using the Steam Deck in Game Mode, does the game apppear in the windows list from the Steam button menu that appears on the left-hand side? Perhaps it is started but not focused.
  • Does this happen in Steam Deck Desktop Mode, launching everything from the Steam Client? This will help narrow down if this is some weirdness with how GameScope (the compositor used in Steam Deck Game Mode) is handling the game processes. Historically, it is not very good at handling multi-window processes.
  • You mentioned your PC, does this happen on your PC as well or does it work as expected? The Linux Desktop Steam Client works differently from even the desktop client on Steam Deck, and there were some changes recently that impact how the Steam Client launches processes for some reason (Steam Deck, starting custom forked command (trainer) not working anymore #875) (Steam Deck Game Mode is just the Steam Client running with the -tenfoot -gamepadui arguments within the GameScope compositor). Not much can be done about this unfortunately if this is the case, as it's to do with how the Steam Client manages processes on SteamOS.
  • This one may be a bit more tricky to check as I'm not sure of the parameters for it, but it would be helpful if you can check whether or not the game process is starting at all. Searching for the executable name might help, though I say it is tricky because differentiating between the Wine processes for the running ModOrganizer 2 and the processes for New Vegas might be a little tricky.

Essentially thoigh, if ModOrganizer 2 is showing its "locked" message, then this is not an issue with SteamTinkerLaunch. If this happens in both Steam Deck Desktop Mode and Steam Deck Game Mode, this is probably a bug in the Steam Client specific to SteamOS that Valve will have to fix.

If it works in Steam Deck Desktop Mode, but not in Steam Deck Game Mode, then this is an issue with GameScope and could be worth reporting upstream (the process issue with the Steam Client on SteamOS was already reported upstream iirc).

If this also happens on your Linux PC, then this is a very strange issue that you'll probably want to open a separate issue for to investigate, with logs attached. ModOrganizer 2 works fine on my Arch PC at least, I modded Oblivion and New Vegas recently and things went smoothly.


If ModOrganizer 2 is simply freezing and it is not showing its lock screen when you're starting the game from ModOrganizer 2, that sounds like a Wine compatiiblity issue that you'll have to tinker around to fix.


Aside from this, as a courtesy note, I'd like to mention that SteamTinkerLaunch does not develop ModOrganizer 2. All the program can really try to guarantee is running the installer and doing some setup to help the program run under Wine. Mod compatibility and bugs that may be caused by external factors (such as changes/bugs in the Steam Client). It is generally therefore up to the user to find out how to get things to work, as SteamTinkerLaunch is a utility to help with tinkering and it is not a modding program.

Following on from this, I want to also make it clear that while you are perfectly free to use SteamTinkerLaunch, users who are not experienced with using Linux generally don't have a good time. SteamTinkerLaunch is a technical utility that I think a lot of people unfortunately mistake as some frontend mod installer for Steam Deck, instead of a utility for Linux enthusiasts. Everyone has to get their feet wet somewhere with tinkering, so it's fine if you are, but keep in mind the target audience for SteamTinkerLaunch isn't necessarily people who are new to Linux, and there are things you'll have to try and figure out as you go.

Finally, I do not use SteamTinkerLaunch on my Steam Deck, and I avoid modding or tinkering on it because I don't want to deal with the hassle, limitations, and bugs that come as part of doing so. As a result of this and my own use-cases, SteamTinkerLaunch is primarily a Linux Desktop tool and I can't give much help with Steam Deck specific issues.


I am hoping this will have a relatively easy resolution, like restarting your Steam Deck. But if ModOrganizer 2 is showing the locked status but not launching the game process, you're probably out of luck as something specific is going wrong with an external process (ModOrganizer 2) trying to launch the game process, and if MO2 starts and functions, I can't really help with much more than that. And fwiw most likely neither can the MO2 developers, as MO2 is not officially supported on Linux, and this is quite possibly an issue specific to SteamOS caused by a Steam Client bug (i.e. MO2 is likely doing everything right, but the Steam Client is blocking the executable launch for some reason).

Good luck!

@sonic2kk
Copy link
Owner

Steam Deck support is a low priority, and lots of people are probably getting pinged from replies to this issue. I think it has outgrown the concept of being a centralised place for Steam Deck support, too, which is better suited somewhere other than the SteamTinkerLaunch repository. An issue like this is less generally useful than, say, the Flatpak Support issue, in my opinion. SteamTinkerLaunch runs on SteamOS now, and there is a separate issue to track some improvements that can be made. Other improvement suggestions can come in the form of other, detailed issues, ideally followed with a PR after implementation discussion.

I'll close and lock this issue, as I have little interest in Steam Deck issues, and it seems the community has little interest in fixing those issues (unlike Flatpak users, who do come forward to fix issues). I don't feel like this issue is conductive to providing help anymore, and usually ends up spawning a non-technical issue report anyway, so closing this will remove that unnecessary step.

If anyone is experiencing issues on SteamOS while you can open an issue, if it's asking for support it's probably better directed elsewhere where there is more of a community to help. I don't even really use my Steam Deck anymore, and the only part of STL I use on it is custom commands (which is hit and miss as of a recent SteamOS update).

Repository owner locked as resolved and limited conversation to collaborators Sep 20, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Steam Deck Issues related to using SteamTinkerLaunch on Steam Deck
Projects
None yet
Development

No branches or pull requests