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

When using "Save and Play" Mod Organizer 2 always gets added for some bizzard reason #1038

Closed
swebow opened this issue Jan 31, 2024 · 15 comments
Labels
bug Something isn't working duplicate This issue or pull request already exists ModOrganizer 2 Issues related to installing or using ModOrganizer 2 with SteamTinkerLaunch

Comments

@swebow
Copy link

swebow commented Jan 31, 2024

System Information

  • SteamTinkerLaunch version: 12.12
  • Distribution: Steam Deck
  • Installation Method: Proton-QT

Issue Description

The issue ONLY happens when I use Steamtinkerlauncher with the "Save and Play" feature via Steam.
If I preconfigure everyhting with Lutris and just use that configuration. It works a treat. But as soon as I change something with Save and Play it seem to be a default template being used and that annoying Mod Organizer 2 try to install. I don't even need it for this game plus it seem totally bugged out.
steampaths.txt

Logs

steamtinkerlaunch-launchSteamGame-STARTDEBUG.txt
steamtinkerlaunch-iscriptevaluator-429660.log

@swebow swebow added the bug Something isn't working label Jan 31, 2024
@swebow
Copy link
Author

swebow commented Jan 31, 2024

steamtinkerlaunch.log

Here is the steamtinkerlauncher.log for some reason it wasn't added.

@sonic2kk
Copy link
Owner

sonic2kk commented Jan 31, 2024

This is probably more automated MO2 issue spam.

  • Did not read the changelog or try STL-git as the issue template instructed, where this issue was fixed
  • Did not read the Steam Deck wiki page OR ModOrganizer 2 wiki page, which informs to use SteamTinkerLaunch from git (MO2 doesn't even work with v12.12 which uses V2.5+, a glance at closed issues would've told you this as would any research into Wine compatibility)
  • Did not search for and/or read any closed issues (looking at closed issues is enough, as well as searching with labels) or PRs (fixed with ModOrganizer 2: Prevent MO2MODE from being 'none', only checkMO2 if MO2MODE is 'GUI' #1017) or commits.

Tired of repeating myself for what I'm now convinced is targeted spam. I refuse to believe so many users cannot follow instructions or insist on using a version that they can see is almost a year old without looking for a git release.

Duplicate of #1016.

@sonic2kk sonic2kk added duplicate This issue or pull request already exists ModOrganizer 2 Issues related to installing or using ModOrganizer 2 with SteamTinkerLaunch labels Jan 31, 2024
@swebow
Copy link
Author

swebow commented Jan 31, 2024

Seem to work only in normal Steam desktop mode. But "Gaming mode" seem broken. I don't know which release Proton-QT downloads. I just followed the recommended settings from the installation part of the wiki to use Proton-QT.

I shall try and see if I can get the git version installed and see if it works.

I find nothing when searching for it via Google more than "Skyrim" threads on Reddit.

I will return and see if it's fixed if I manage to get the git version installed.

@sonic2kk
Copy link
Owner

sonic2kk commented Jan 31, 2024

. I don't know which release Proton-QT downloads. I just followed the recommended settings from the installation part of the wiki to use Proton-QT.

ProtonUp-Qt tells you this. The "SteamTinkerLaunch" ctmod will download v12.12, as the version dropdown notes, and the "SteamTinkerLaunch-git" ctmod will download the master branch by default. I believe it is already quite clear:

image
image

If you believe there is a way for ProtonUp-Qt to make this clearer, open an issue for that project, but I think the current descriptions are sufficient.

I find nothing when searching for it via Google more than "Skyrim" threads on Reddit.

I meant the GitHub issue tracker, not Google. You should also be looking at the wiki as well before even installing the project, not simply searching for threads on Reddit and blindly doing things. SteamTinkerLaunch is an enthusiast-centric tool best used by those who have experience with tinkering on Linux.

This project isn't a modding tool by the way, this is an enthusiast tool. It's not for installing mods on SteamOS, where mods shouldn't be used anyway imo.

If you just want to mod games on SteamOS and have no experience with the technicalities and quirks of doing so under Wine, I don't recommend it. This project is for tinkerers, hence the name.

I will return and see if it's fixed if I manage to get the git version installed.

It's available in ProtonUp-Qt. If for some reason you haven't already, you may need to enable "Advanced Mode".

@swebow
Copy link
Author

swebow commented Jan 31, 2024

I'm well aware. I don't use Reddit for this sort of thing.
I shall try with Proton-QT since going manually with the Git semi-works. Now it have problems with "Dependencies" trying to install and since SteamOS is so locked down it doesn't seem to go anywhere, let me do the proper way with Proton-QT.

I do run Linux but on a more open system so I'm well aware on Arch, but this is simply very locked down system. I normally never need to search Github and I'm not that well versed in search with it, since I barely ever provide anything (Not a programmer.

Heck I barely use my SteamDeck. I just felt like playing a bit with an old game and use a trainer to get through the boring bits.

@sonic2kk
Copy link
Owner

sonic2kk commented Jan 31, 2024

let me do the proper way with Proton-QT.

Double-clicking the script cloned from master does the same thing as ProtonUp-Qt. It is not the "proper" way -- Actually, if we want to be technical, the "official" way in that the way the previous maintainer intended for the project to be installed, was by double-clicking on the script. The project and its dependencies are downloaded and installed to ~/stl/prefix. ProtonUp-Qt more or less just runs the script and copies some langfiles, and adds it to your PATH for convenience.

ProtonUp-Qt is NOT the "proper" way, it is just one of two ways.

I normally never need to search Github and I'm not that well versed in search with it, since I barely ever provide anything

You should always search for closed issues and merged PRs on GitHub (for any project, it's courtesy), but even if you don't want to for some reason, the issue template already told you to look at the changelog and try the latest git. Hence my annoyance, this is a duplicate of an existing issue and there were already instructions to try the latest git, but more than this as well, you shouldn't have been using v12.12 to begin with, since the documentation already says to use the latest git version (Steam Deck wiki page, Installation wiki page).

I do run Linux but on a more open system so I'm well aware on Arch, but this is simply very locked down system.

A big reason why SteamOS support is slated to be dropped is because of this and a lack of programmers using STL on SteamOS to contribute. I do not use SteamTinkerLaunch on my Steam Deck anymore. It has not seen any testing in about 8 months, and after v14.0 if no one contributes at all to #859 I will stop advertising SteamOS support and will close issues for users on SteamOS, citing that no users gave a damn about supporting the platform.

@swebow
Copy link
Author

swebow commented Jan 31, 2024

Very odd issue. I shall provide the logs.

If I download the Git via Proton-QT, booted it via Steam in Desktop mode, did my settings. Works like a charm.
Tried "Gaming mode", starting the game, not touching anything. Everything works great!

Exited the game and started it again in "Gaming mode". This time I chose to configure it, goes to game file click the trainer again, and "Save and Play" same mysterious issue I had with 12.12. For some reason "Gaming Mode" seem to break STL.
Is it running in a fully separate little sandbox?

Tales of Berseria.log

I've might have fatfingered injectGdb so I shall try this again but only via Gaming mode so the logs are proper.
logs.zip

@swebow
Copy link
Author

swebow commented Jan 31, 2024

This time.

Uninstalled via Proton-QT
did a: rm -rf /home/deck/.config/steamtinkerlauncher
did a: rm -rf /dev/shm/steamtinkerlauncher
Reinstalled the GIT via Proton-QT

Restarted Steam Deck
It restarted in to it's default Gaming Mode
Start Tales of Berseria
Configures it as it's suppose to

Config is the following changes:
"Use Custom Commands"
Custom Command: "Tales of Berseria v1.0-Update 2017.02.14 Plus 22 Trainer.exe"
"Fork custom command"
Proton version: GE-Proton8-30 (Using this else the Trainer refuse to start. Reason unknown why).
"Save and Play"

It does what it looks like a "crash to desktop" (Just seems the Gaming mode and launch game) and then almost instantly Steam logo ball, looking like it loads the game. Frozen. I'm left it for about 5mins.
Log here before reboot, still frozen - Will update below with logs and what happens after the reboot.

logs.zip

@sonic2kk
Copy link
Owner

sonic2kk commented Jan 31, 2024

Is this custom program definitely compatible with the Proton version you're trying to use on SteamOS?

There are many cases where third-party programs that work fine on the Linux Desktop do not work on SteamOS. Especially in Game Mode, where many attempts to use third-party programs simply do not work. This is not limited to SteamTinkerLaunch, but a recent example includes #1010.

The Steam Client on SteamOS appears to be very strict about what processes can and cannot be spawned, in a way that it is not on the Linux Desktop (or at least, not on my and others' desktops).

@swebow
Copy link
Author

swebow commented Jan 31, 2024

Did a "Force reboot" holding down the power button since Steam refused to reboot when the whole saga froze. I could just ssh in to it and htop kill everything. But I wanted to emulate the average steam deck user.

Starting the game, and just crash. Back to Steam launch screen.

Answer to previous question: Good question. It all do work perfectly with STL, GE-Proton8.30 etc when running in Desktop mode and if I don't touch "Save and Play" in Gaming Mode. Darn you Valve, STL worked so good like a year ago when I lasted used my Steam Deck in Gaming Mode.
logs.zip

Logs after restart and game crashed provided.

EDIT: Sadly I have to go to bed. Do you want me to do more bug testing or is this out of the scope of what STL can do? It do seem to be something with SteamOS for sure.

@sonic2kk
Copy link
Owner

sonic2kk commented Jan 31, 2024

STL worked so good like a year ago when I lasted used my Steam Deck in Gaming Mode.

I don't believe anything broke on my side, indeed it seems like this changed with some SteamOS change.

Just to confirm:

It all do work perfectly with STL, GE-Proton8.30 etc when running in Desktop mode

With the exact same configuration you have now, the game+trainer works in Steam Deck Desktop Mode, but not Game Mode? As in, with no changes from your side, if you were to boot into Desktop Mode now, it would work? Sorry if that seems really repetitive to ask, I basically want to narrow down that the exact same configurations work in Desktop Mode but not Game Mode?

If so, then I agree with you that this is probably out-of-scope. I have also long-suspected this to be the case as previous issues I have seen I have been unable to replicate on my Linux Desktop. I don't know what would be done here, STL just launches processes and if there is some funkiness going on in Game Mode I'm not sure I can solve it. I don't use the project, but there is a project called Decky Loader and it has some unofficial plugins that tried to load third-party executables with Wine in the game prefix completely broke a few months ago (around October-November time).

I suspect that, since at least in my tests things work on the Linux Desktop, and if in your tests the same configuration works in Steam Deck Desktop Mode, that this is either a bug introduced by Valve or a deliberate change that Valve have made on their end.

Sadly I have to go to bed. Do you want me to do more bug testing or is this out of the scope of what STL can do?

That's no problem! Whenever you can, please test if this definitely works in Desktop Mode. Again, I am being repetitive here and I apologise, but I want to underline and be as clear as I can that I want to know that the issue is indeed exclusive to Game Mode.

I understand it will suck if it doesn't work, but I hope that at least it is also "understandable" that if this issue only affects Game Mode, then it's likely something wrong on Valve's end. If there is a way to workaround this, SteamTinkerLaunch can detect if it's running in Steam Deck Game Mode, so if someone finds a workaround it could be implemented. That's not to say there is one, just that if one is found, there is code in place to allow changes in behaviour if there is something required.


Something you said in another comment is very interesting!

Is it running in a fully separate little sandbox?

I have wondered this for quite a while.

It seems like trying to make configurations in Game Mode breaks a lot of SteamTinkerLaunch as of quite recently, see #1012 (comment): "Scratch that, I was wrong. The problem is caused by making changes to things in STL while the deck is in gaming mode" -- They faced a separate issue I think, but it remains another report.

There has always been weirdness in Game Mode historically: Prefixes are sometimes created on the boot drive instead of the library folder for the game, launch options that reference scripts will not load them (including SteamTinkerLaunch, meaning native games do not work, #630), occasionally there are incredibly long load times for Non-Steam Games, and as noted here, sometimes configuring or running certain games in Game Mode does not work with SteamTinkerLaunch.

You don't have to, but if you're interested, you could check to see if there are any sandbox processes that look odd. I'm not really sure what to suggest, however, recently the Steam Client runs with the Steam Linux Runtime by default. This is likely for compatibility but I wonder if on Steam Deck Game Mode they're wrapping it in a way that breaks things The Steam Linux Runtime process is usually referred to as bwrap, pressure-vessel-bwrap pressure-vessel-adverb. What might be interesting to look for is a change in these processes when a game using SteamTinkerLaunch opens in Desktop Mode, and then checking (such as via htop with ssh as you mentioned) if the processes in Game Mode are different. This would be quite a manual process and manual checking of processes launched etc, so I fully understand if you don't want to. There is no expectation for this level of testing. But I have documented it anyway in case you're interested yourself and/or in case others in future read this and want an idea of where to start with troubleshooting this kind of issue.

Sadly, in its current form, I don't know if there's any point in reporting this upstream to Valve. One would have to make a script to do what SteamTinkerLaunch is doing, in a stripped down form of course, ensuing it properly wraps the start commands etc. I may get around to this one day, but there have been reports of this affecting other projects trying to do the same thing, so perhaps they'll report it anyway (they have more investment in SteamOS compatibility than I do).


Even if this issue started with me being quite harsh and cold, I appreciate the investigation work and testing you provided here once the version issue was ironed out :-)

@swebow
Copy link
Author

swebow commented Feb 1, 2024

Haha no worries. I know the frustration! I didn't take it hard at all.

Yeah I have tried to repeat now.

Doing settings via Desktop Mode, works great!
Doing any setting in Game Mode with "Save" or "Save and Play" I get issues.

So workaround, config what you wish in Desktop Mode and then just use it during Game Mode.

I spoke with the dev Werwolv and he said there is no Sandbox mode. But during Game Mode, it enables Gamescope and run in Wayland.

Let me copy what he said

"Nah it's just a different desktop environment it boots into. The only thing that's sandboxed is the Flatpak stuff"

and

"I don't think anything's sandboxed. Entering Game mode launches Gamescope which is really just a Wayland composer
But it's running everything exactly the same as in desktop mode
It isn't different partitions or anything either"

@sonic2kk
Copy link
Owner

sonic2kk commented Feb 1, 2024

I'm not sure who that dev is but what they've said is about what I thought, so I wonder why things don't work in Game Mode. They are entirely correct though so thank you for providing that information! Perhaps there is some bug on Valve's side going on? My understand was just what you said, that it's just Steam in Big Picture running in a GameScope Embedded session. The weirdness in Game Mode is not limited to SteamTinkerLaunch and the issues I've observed with SteamTinkerLaunch in Game Mode are quite varied.

These issues are also present with v12.12 according to reports, and that used to work, so that really leads me to believe that something has changed on Valve's end, because if a version of STL that used to work now does not, I don't think the issue was introduced by SteamTinkerLaunch.

I am very curious, so I will try running Steam in a nested gamescope nested session and then launching a game that uses SteamTinkerLaunch from it, and see what happens.

@sonic2kk
Copy link
Owner

sonic2kk commented Feb 1, 2024

Nevermind, Steam seems to try and detect when it's running in GameScope and assumes it's running on SteamOS, and will crash. So I will instead try a more hacky approach of wrapping SteamTinkerLaunch in the GameScope command in a game's launch options.

@sonic2kk
Copy link
Owner

sonic2kk commented Feb 1, 2024

When running a couple of games with Proton Experimental as the compatibility tool, and gamescope -w 1280 -h 720 -f -- steamtinkerlaunch %command% in the launch options, SteamTinkerLaunch will open but will behave a bit odd.

  • It isn't actually running in GameScope in the traditional sense, maybe because it's a dialog window(?)
  • The window is getting its size from the GameScope laucnh parameters. For example using -w 1920 -h 1080 -f will make a bigger window than -w 1280 -h 800 -f. Swapping back and forth I could see the window size was changing, despite it
  • Killing the GameScope process will not kill SteamTinkerLaunch until opening the Game Menu or another button that will actually close and re-create a new dialog
    • Even normally when trying to open the Game Menu, which is technically a new dialog, it still isn't running in GameScope
  • Trying to launch a game will result in a hang, STL hands the game start process off properly as I can see some initial Proton logging when doing this process with Steam running from a terminal, but it seems like Steam won't actually start the game process propery in this scenario.

When trying to run SteamTinkerLaunch from GameScope nested session from Terminal with gamescope -- steamtinkerlaunch settings, it will run the same way it does as if you use this as your game launch options (possibly not surprising that the behaviour is the same since it is doing effectively the same thing).

An interesting thing I found is that I can pass --expose-wayland to GameScope, as I'm using a Plasma Wayland session, Yad defaults to using Wayland. This makes SteamTinkerLaunch actually load in a nested Wayland session window, but it is unresponsive. You can force Yad to run with X11 with GDK_BACKEND=x11 steamtinkerlaunch settings (there is also a global menu option to force X11). But when doing this, GameScope crashes.


So what all of this means is that right now I can't really test to see what's breaking and why SteamTinkerLaunch will crash when trying to save and play. I guess I have a couple of other questions which might have obvious answers, so sorry once again if this is repetitive (all of this in Steam Deck Game Mode):

  • Does this flow work? Go to the Game Menu, optionally configuring something, pressing "Save", then pressing "Back" to go to the Main Menu, and then pressing "Play"
    • This would narrow down if the issue is specific to trying to save to a file if just pressing "Save" fails. It would narrow down if the option is specific to "Save and Play" if individually the "Save" and "Play" buttons work.
  • When pressing "Save and Play", does it make a difference if you've configured anything or not? For example if you were to just open the Game Menu and then press "Save and Play" without making any changes, does it still crash? I'm going to go out on a limb and say that yes, this will still fail, since even if nothing has changed STL should still be writing some stuff to a config file.
  • Once again on the theme of writing to files, something else I'm interested in:
    • When you finish playing a game with SteamTinkerLaunch, it will store the length of time that you played it for. Something that would be interesting is if you launch a game with SteamTinkerLaunch -> Go to the Main Menu -> Take note of the "Last played on" time at the top. It should be directly under the game name (you can see an example screenshot on the Readme).
    • Launch a game with SteamTinkerLaunch for a length of time that would make it noticeably different to the time listed above. For example, if the last played time was for 5 minutes, play it this time for a different length of time, such as 10 seconds.
    • Then, repeat the first step of going to the Main Menu and checking the time displayed. If this has changed to more or less reflect the time you played for - if it's off by a few seconds that's probably fine; if it's off by minutes, then we have a winner and the last played time file is probably not being updated!

Something from a log you provided earlier from running in Steam Deck Game Mode (a type of log that is like golddust, I have yet to see one!) has a really interesting section:

Wed Jan 31 10:47:16 PM CET 2024 INFO - prepareLaunch - Initial Proton version from the game config: 'none'
Wed Jan 31 10:47:16 PM CET 2024 INFO - fixProtonVersionMismatch - Incoming category is 'USEPROTON' with value 'none'
Wed Jan 31 10:47:16 PM CET 2024 INFO - fixProtonVersionMismatch - Looking for an alternative similar version for 'none'
Wed Jan 31 10:47:16 PM CET 2024 INFO - notiShow - Skipping notifier on SteamDeck Game Mode
Wed Jan 31 10:47:16 PM CET 2024 INFO - fixProtonVersionMismatch - Automatically selecting newest official one
Wed Jan 31 10:47:16 PM CET 2024 INFO - setNOP - Selecting newest official Proton available
Wed Jan 31 10:47:16 PM CET 2024 INFO - setNOP - Selected '/home/deck/.local/share/Steam/steamapps/common/Proton 8.0/proton'
Wed Jan 31 10:47:16 PM CET 2024 INFO - notiShow - Skipping notifier on SteamDeck Game Mode
Wed Jan 31 10:47:16 PM CET 2024 INFO - fixProtonVersionMismatch - Automatically updating USEPROTON to 'none' in '/home/deck/.config/steamtinkerlaunch/gamecfgs/id/429660.conf'
Wed Jan 31 10:47:16 PM CET 2024 INFO - updateConfigEntry - Option 'USEPROTON' is updated with the new value 'none' in config '429660.conf'
Wed Jan 31 10:47:16 PM CET 2024 INFO - prepareLaunch - Initializing internal Proton Vars for 'none' using setNewProtVars

SteamTinkerLaunch isn't able to set a Proton version for the game and sets it to none. However it does find the newest official Proton, but when it tries to set this, it fails. This failure, I take it from the logs, is exclusive to Steam Deck Game Mode and only after "Save and Play". The crash then is probably because it doesn't have a Proton version to launch with, and since it can't wrap the launch command properly, it's failing.

This could be one of any number of issues, but it is an interesting puzzle piece. The relevant code for the lines that then update the Proton version to none again are here: https://github.com/sonic2kk/steamtinkerlaunch/blob/master/steamtinkerlaunch#L19156-L19161

I have a suspicion that it is [ ! -f "$(getProtPathFromCSV "$MIMAPROT")" ] that is passing when it probably shouldn't be. I wonder if we can't read /dev/shm/steamtinkerlaunch properly from Game Mode...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working duplicate This issue or pull request already exists ModOrganizer 2 Issues related to installing or using ModOrganizer 2 with SteamTinkerLaunch
Projects
None yet
Development

No branches or pull requests

2 participants