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

launchCustomProg not find but start it #1052

Closed
Mte90 opened this issue Mar 11, 2024 · 12 comments
Closed

launchCustomProg not find but start it #1052

Mte90 opened this issue Mar 11, 2024 · 12 comments
Labels
bug Something isn't working Custom command Issues related to launching custom commands Needs Retest Issues that need feedback after a change/discussion, or with a newer version Steam Deck Issues related to using SteamTinkerLaunch on Steam Deck

Comments

@Mte90
Copy link
Contributor

Mte90 commented Mar 11, 2024

System Information

  • SteamTinkerLaunch version: v12.12
  • Distribution: Arch Linux
  • Installation Method: Flatpak

Issue Description

Has you can see initially says the traienr is not found, next that is a MS program and will start it.
In this trainer case nothing is happening probably is crashing the trainer itself (the rest of the log doesn't mention anything useful)?

Logs

sab 9 mar 2024, 19:04:07, CET INFO - injectCustomProg - Game is running, starting custom command in '0' seconds
sab 9 mar 2024, 19:04:07, CET INFO - launchCustomProg - '/home/deck/Desktop/trainer/Ghostrunner.exe' not found - searching in gamedir
sab 9 mar 2024, 19:04:07, CET INFO - launchCustomProg - '/home/deck/Desktop/trainer/Ghostrunner.exe' also not in '/home/deck/.local/share/Steam/steamapps/common/Ghostrunner//home/deck/Desktop/trainer/Ghostrunner.exe' - checking if absolute path was provided
sab 9 mar 2024, 19:04:07, CET INFO - launchCustomProg - '/home/deck/Desktop/trainer/Ghostrunner.exe' is absolute path
sab 9 mar 2024, 19:04:07, CET INFO - launchCustomProg - Changed pwd into the custom directory '/home/deck/Desktop/trainer'
sab 9 mar 2024, 19:04:07, CET INFO - launchCustomProg - '/home/deck/Desktop/trainer/Ghostrunner.exe' seems to be a MS Windows program - starting through proton
sab 9 mar 2024, 19:04:07, CET INFO - launchCustomProg - '/home/deck/Desktop/trainer/Ghostrunner.exe' seems to be a MS gui program - starting regularly
sab 9 mar 2024, 19:04:07, CET INFO - launchCustomProg - FORK_CUSTOMCMD is set to 1 - forking the custom program in background and continue
sab 9 mar 2024, 19:04:07, CET INFO - setRunProtonFromUseProton - Setting ORUNPROTON to '/home/deck/.local/share/Steam/compatibilitytools.d/GE-Proton8-32/proton'
sab 9 mar 2024, 19:04:07, CET SKIP - setRunProtonFromUseProton - RUNPROTON '/home/deck/.local/share/Steam/compatibilitytools.d/GE-Proton8-32/proton' hasn't changed
sab 9 mar 2024, 19:04:07, CET INFO - extProtonRun - Continuing with RUNPROTON='/home/deck/.local/share/Steam/compatibilitytools.d/GE-Proton8-32/proton'
sab 9 mar 2024, 19:04:07, CET INFO - extProtonRun - No external program args here it seems
sab 9 mar 2024, 19:04:07, CET INFO - extProtonRun - Starting '/home/deck/Desktop/trainer/Ghostrunner.exe' forked into the background

I have the same behavior also with another trainer:

sab 9 mar 2024, 19:09:22, CET INFO - waitForGamePid - Game process found at 68516
sab 9 mar 2024, 19:09:22, CET INFO - injectCustomProg - Game is running, starting custom command in '0' seconds
sab 9 mar 2024, 19:09:22, CET INFO - launchCustomProg - '/home/deck/Desktop/trainer/MadMax.exe' not found - searching in gamedir
sab 9 mar 2024, 19:09:22, CET INFO - launchCustomProg - '/home/deck/Desktop/trainer/MadMax.exe' also not in '/home/deck/.local/share/Steam/steamapps/common/Mad Max//home/deck/Desktop/trainer/MadMax.exe' - checking if absolute path was provided
sab 9 mar 2024, 19:09:22, CET INFO - launchCustomProg - '/home/deck/Desktop/trainer/MadMax.exe' is absolute path
sab 9 mar 2024, 19:09:22, CET INFO - launchCustomProg - Changed pwd into the custom directory '/home/deck/Desktop/trainer'
sab 9 mar 2024, 19:09:22, CET INFO - launchCustomProg - '/home/deck/Desktop/trainer/MadMax.exe' seems to be a MS Windows program - starting through proton
sab 9 mar 2024, 19:09:22, CET INFO - launchCustomProg - '/home/deck/Desktop/trainer/MadMax.exe' seems to be a MS gui program - starting regularly
sab 9 mar 2024, 19:09:22, CET INFO - launchCustomProg - FORK_CUSTOMCMD is set to 1 - forking the custom program in background and continue
sab 9 mar 2024, 19:09:22, CET INFO - setRunProtonFromUseProton - Setting ORUNPROTON to '/home/deck/.local/share/Steam/compatibilitytools.d/GE-Proton8-32/proton'
sab 9 mar 2024, 19:09:22, CET SKIP - setRunProtonFromUseProton - RUNPROTON '/home/deck/.local/share/Steam/compatibilitytools.d/GE-Proton8-32/proton' hasn't changed
sab 9 mar 2024, 19:09:22, CET INFO - extProtonRun - Continuing with RUNPROTON='/home/deck/.local/share/Steam/compatibilitytools.d/GE-Proton8-32/proton'
sab 9 mar 2024, 19:09:22, CET INFO - extProtonRun - No external program args here it seems
sab 9 mar 2024, 19:09:22, CET INFO - extProtonRun - Starting '/home/deck/Desktop/trainer/MadMax.exe' forked into the background
@Mte90 Mte90 added the bug Something isn't working label Mar 11, 2024
@sonic2kk
Copy link
Owner

Hi, I think there is a little bit of confusion here. Partly on your end, and also partly on my end as I am not fully clear on some things in this issue.

Has you can see initially says the traienr is not found, next that is a MS program and will start it.

This is general logging, and refers to the paths that SteamTinkerLaunch looks at first. As you can see in the final log, it does find the launcher, by looking in the absolute path. Internally, launchCustomProg does not have to accept an absolute path, but when passed from the Game Menu GUI, it will always be an absolute path because that's how Yad stores them.

So this part is not a bug, this is general logging.

In this trainer case nothing is happening probably is crashing the trainer itself (the rest of the log doesn't mention anything useful)?

You should still have attached it so I could confirm other things that are probably incorrect in your issue description.

I am not clear here: Your issue title says that the custom program was logged as not found (which is just logging, it is eventually found at the absolute path) but that it will start the program.

As for the log not mentioning anything else useful, if you expected the log to note about issues running Wine programs, you are mistaken. This log is for SteamTinkerLaunch execution, not for troubleshooting Wine crashes. Issues with third-party programs are not my problem.

You've noted this but are you sure this program definitely works under Wine/Proton? This also leads into my next point:

  • SteamTinkerLaunch version: v12.12
  • Distribution: Arch Linux
  • Installation Method: Flatpak

Sorry, I don't think this is correct.

First of all, if you're running v12.12, then you ignored the issue template which tells you to use the latest version from master when troubleshooting issues. PLEASE do not EVER use a stable release of SteamTinkerLaunch unless there is some issue; releases are sporadic and not supported. I only troubleshoot issues that exist on the latest master. This has also been made clear by various other replies to other issues, and seeing people use v12.12 is killing my motivation. You might not even be using this version, as if you installed from master you aren't using v12.12, and if you're using the Flatpak (which I highly doubt, see below) then you're certainly not using v12.12. There have been A LOT of changes since v12.12, the Changelog link provided on the wiki helps illustrate this.

Rant over, next up: It looks like you're using a Steam Deck, based on your log and also a comment you left on another issue. I'm fairly sure you're actually running SteamOS on a Steam Deck. Even though SteamOS is based on Arch Linux, it is not valid to simply say "Arch Linux" because of Steam Deck-specific workarounds and loggings. Steam Deck support is also entirely unmaintained at this point and will no longer be advertised assuming no one comes forward to help maintain its support. Therefore it is VITAL that you correctly note your distribution.

If you're using Flatpak SteamTinkerLaunch then you did not read the installation instructions properly, Flatpak SteamTinkerLaunch is for Flatpak Steam only, and you are not using Flatpak Steam as evidenced by the fact that you have a Steam installation at ~/.local/share/Steam. If you're on Steam Deck, then there is a very slim chance you're actually using Flatpak SteamTinkerLaunch, and you're actually using a regular version.

It is my assumption, then, that you're using SteamTinkerLaunch on SteamOS, installed manually, and you may or may not be using v12.12. If you are trying to use Flatpak SteamTinkerLaunch on Steam Deck,, then you will need to re-install properly (not even sure how this would actually work).

Finally, all of this could've been avoided if you had just attached a log like the issue template asked. You are perfectly free to post snippets you think are important, but don't skip the log. It has information about whether you're actually using Flatpak SteamTinkerLaunch, as well as some SteamOS-specific logging. It helps clear up confusion and provide better help.


So overall, there are three main takeaways here:

  1. The first issue about the logging is not a bug, it is ignorable.
  2. You will need to make sure your trainer works with Wine/Proton and confirm that it not launching is specific to using it with SteamTinkerLaunch, and most importantly, that this happens on the latest version from master. Support is ONLY given to issues that use the latest master.
    a. If you are on Steam Deck you should also try in Desktop Mode, as there are a few recent issues with custom executables launching with games being broken on Steam Deck Game Mode, with and without SteamTinkerLaunch, but they work fine in Desktop Mode.
  3. Please attach a log if your issue persists so that I can see more information about your actual platform, as it seems to not be entirely correct.

@sonic2kk sonic2kk added Custom command Issues related to launching custom commands Needs Retest Issues that need feedback after a change/discussion, or with a newer version labels Mar 11, 2024
@Mte90
Copy link
Contributor Author

Mte90 commented Mar 12, 2024

hi, sorry for the troubles, I didn't wanted to create those.
I am a developer too and I understand the burden that a project like this can create.


So, I installed STL with protonupqt and it is really the 12.12 version on the Steam Deck (I was thinking that arch linux was enough).

I have to try again to generate the log and share the full output, I tried to search the code before opening the ticket https://github.com/search?q=repo%3Asonic2kk%2Fsteamtinkerlaunch%20launchCustomProg&type=code but there isn't really code here (or I can't found it).

My guess is that in the ghostrunner case the trainer doesn't start, so I tried to run the game with GE-Proton to see if something changes but there isn't any output in STL to see if the trainer exe crashed for some reason. I don't know if I have to turn on proton log to see that.

EDIT: I noticed now that is a big bash script https://github.com/sonic2kk/steamtinkerlaunch/blob/better-gamescope-full-args-no-dash-fix/steamtinkerlaunch

@sonic2kk
Copy link
Owner

No problem, you've clarified here and I am grateful!

So, I installed STL with protonupqt and it is really the 12.12 version on the Steam Deck

Thanks for the clarification.

ProtonUp-Qt is not really the same as installing manually, although pretty much all it does is ./steamtinkerlaunch, move some language files for you, and add SteamTinkerLaunch to your PATH for easier commandline usage. On SteamOS SteamTinkerLaunch can be installed by just double-clicking the script, and it will know it's on SteamOS and install itself appropriately. See SteamTinkerLaunch's steamdedeckt function (in need of a refactor tbh, an easy win would be to exit early if not on SteamOS, instead of doing everything if we are on SteamOS) and ProtonUp-Qt's SteamTinkerLaunch ctmod (as well as SteamTinkerLaunch-git) which was developed together by myself and ProtonUp-Qt maintainer DavidoTek (could use a very small refactor to use some more modern util functions, but I don't have a spare machine to test the ctmod on anymore, so I unfortunately cannot contribute it).

You should install the SteamTinkerLaunch-git option. Make sure you enable Advanced Mode if you didn't already. STL is a technical tool so most people installing it that will get the most of out it already have it, this is just in case you might've missed it. This is also noted on the wiki.

Keep in mind that ProtonUp-Qt can be used to install SteamTinkerLaunch on SteamOS and Linux Desktop (the only platform worth using STL on, imo).

(I was thinking that arch linux was enough).

There are flavours of Arch Linux, such as Garuda Linux, but it would still not be correct to just say "Arch" as there are all kinds of potential differences. Nevertheless, SteamOS is based on Arch, but there are a lot of platform-specific workarounds because SteamOS uses a silly immutable filesystem. SteamTinkerLaunch needs to install some dependencies itself, for example innoextract and yad because we cannot have the user install these themselves on SteamOS.

I don't know if I have to turn on proton log to see that.

You should find the Wine execution logging in /dev/shm/steamtinkerlaunch/extProtonRun.log. The launchCustomProg function should launch programs using the extProtonRun function, and in turn during launch this function tees output to /dev/shm/steamtinkerlaunch/extProtonRun.log (https://github.com/sonic2kk/steamtinkerlaunch/blob/8bcc2af6492c8feccea3ce249f62829e7ff8ece7/steamtinkerlaunch#L12693-L12716).

You should also try running the program manually first - On a Linux Desktop and NOT on SteamOS - and checking the Wine output, or browsing for Wine compatibility with your program online. You should always verify Wine compatibility, because I'm not here to help users troubleshoot Wine problems. This is a utility that expects users to know how to do most of the steps it automates manually, and provides an interface to more graphically automate it (and to reduce very long Steam launch options). I think a lot of people that use SteamTinkerLaunch are gamers-first and it makes life a lot more difficult for them.

Custom programs often have issues on SteamOS, so check first that it works on a Linux Desktop. If it does, then this is a SteamOS issue. Similar issues were reported in the past (#1010), usually the custom program will only work on SteamOS in Desktop Mode and not Game Mode. The same limitation strangely doesn't apply with a desktop GameScope session (Steam Deck Game Mode is just the Steam Client running in GameScope with a couple of fancy flags and env vars set, such as for Steam to use -gamepadui, and DXVK with DXVK_HDR=1).

There are some Steam Deck projects that try to launch custom programs alongside games but a lot of these broke around the same time they did for SteamTinkerLaunch, ~SteamOS 3.5 Beta, and it is likely intentional by Valve to ensure they clean up processes properly in Steam Deck Game Mode.


I don't know much about these trainer programs, nor do I like what I do know, but it seems like a few of them require dotnet48 to install properly. This will usually NOT install properly on SteamOS with Winetricks, SteamTinkerLaunch (which uses Winetricks), but may occasionally work with Protontricks (make sure you select a Proton compatibility tool for your game instead of SteamTinkerLaunch before using Protontricks, since it looks for a Wine binary for the compatibility tool). On the Linux Desktop (at least on Arch Linux, Garuda Linux, endeavourOS, openSUSE, Fedora 38, and Bazzite), dotnet48 seems to install properly with Winetricks.

For some background on the dotnet48 thing: My suspicion for this incompatibility is to do with the Steam Linux Runtime not being used on SteamOS to install Winetricks verbs, and this would be a generally useful option to include so I would like to make it an option (#860 which is a wishlist item for v14.0, see #992). The only tricky part is that we cannot use this with systemwide Winetricks, so if this option is introduced and enabled, we'll need to always pull Winetricks (which we have code in place for, it's just another check we'll need to do, and something to document on the Winetricks wiki page). Protonfixes and UWLGL will use the Steam Linux Runtime and it appears to give some success from what I understand. Although I wonder if UWLGL could be integrated into STL in some way, that is something I don't know enough about to work on or even propose.


Hope that clears some things up from my side too.

@sonic2kk sonic2kk added the Steam Deck Issues related to using SteamTinkerLaunch on Steam Deck label Mar 12, 2024
@sonic2kk
Copy link
Owner

You have been working on a lot since this so I will leave this open, no rush to hurry back here, but I did confirm that the Wine output for a custom program launch is sent to /dev/shm/steamtinkerlaunch/extProtonRun.log. Make sure you test with the latest SteamTinkerLaunch version from master in case there is something specific that has already been fixed.

This extProtonRun.log is where you'll find Wine logging. Also, you can confirm externally if a program is compatible with Wine by adding it as a Non-Steam Game and seeing if it launches with Proton. This will narrow down if the issue is with SteamTinkerLaunch specifically.

I think you mentioned you've used other trainer programs, so if this specific program is the only one not working, it is likely that it is a specific incompatibility with the trainer and Wine.

Finally, if the program doesn't work, try to confirm if the issue is specific to running on SteamOS.

But as mentioned, rush on getting back on this :-)

@sonic2kk
Copy link
Owner

Friendly poke, did you get a chance to re-test this?

@Mte90
Copy link
Contributor Author

Mte90 commented Mar 25, 2024

No I will try in the next days.

@sonic2kk
Copy link
Owner

sonic2kk commented Mar 26, 2024

No problem, just interested to know if this is specific to SteamOS and/or specific to Steam Deck Game Mode which has previously been reported to be broken in various ways with SteamTinkerLaunch, including for custom commands, but some people have had success. No idea what the factors are, but custom commands work as expected for me on the Linux Desktop as of #1010 (comment).

@Mte90
Copy link
Contributor Author

Mte90 commented Apr 1, 2024

I get this log:

ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
wine: failed to open "/home/deck/Desktop/trainer/Ghostrunner v1.0-v20220628 Plus 5 Trainer.exe": c0000135
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
Setting breakpad minidump AppID = 1139900
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561198055726040 [API loaded no]
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.

@sonic2kk
Copy link
Owner

sonic2kk commented Apr 1, 2024

That's output from a Proton error, so I can't help much, but c0000135 usually indicates an unsupported executable from experience (a segfault iirc).

Either way, not very helpful here, sorry. I'm not a Wine developer. You'll need to do some testing and see if the executable works in different scenarios to understand if this is a Wine problem or a SteamTinkerLaunch-specific problem.

As requested, try on Steam Deck Desktop Mode as well as Game Mode, on a Linux PC, and where possible, with Proton but without SteamTinkerLaunch. This will narrow down where the problem lies.

If it works without SteamTinkerLaunch but with Proton in general (outside of Steam Deck Game Mode, where custom programs on SteamOS are known to increasingly not work), then more investigation work will be needed for what causes the problem.

@Mte90
Copy link
Contributor Author

Mte90 commented Apr 3, 2024

Can make sense to show an alert in this cases? In this way it is clear that the attached process is crashed and not just waiting to start or something similar

@sonic2kk
Copy link
Owner

sonic2kk commented Apr 3, 2024

That's not really up to SteamTinkerLaunch, if a Wine process is hanging, it's not something for SteamTinkerLaunch to try and diagnose. STL is not a Wine troubleshooting program :-)

If a Wine process closes, SteamTinkerLaunch will send a notifier message, but if the process is hanging there's nothing we can do, just like if a game were to hang.


If you think this is a general Wine/Proton incompatibility with the custom program you're trying to use (sometimes the incompatibility occurs with one but not the other), or a Steam Deck Game Mode specific problem, then I think this issue can be closed. I haven't really heard back one way or the other what results you've found for this program.

@Mte90 Mte90 closed this as completed Apr 4, 2024
@Mte90
Copy link
Contributor Author

Mte90 commented Apr 4, 2024

Probably on steam deck the notification is not happening so that was my issue at the end.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working Custom command Issues related to launching custom commands Needs Retest Issues that need feedback after a change/discussion, or with a newer version Steam Deck Issues related to using SteamTinkerLaunch on Steam Deck
Projects
None yet
Development

No branches or pull requests

2 participants