sonic2kk / steamtinkerlaunch

Linux wrapper tool for use with the Steam client for custom launch options and 3rd party programs
GNU General Public License v3.0
2.06k stars 70 forks source link

Compatibility issues with bypassing launchers via custom command #968

Open CartoonFan opened 8 months ago

CartoonFan commented 8 months ago

System Information

Issue Description

I seem to be attracted to games with strange issues :sweat_smile:

I've noticed two to three quirks which may warrant a closer look:

2023_11_06_13_48_59

The game runs properly when run from the launcher.

2023_11_06_14_08_40

2023_11_06_14_08_59

2023_11_06_14_09_38

2023_11_06_14_14_38 2023_11_06_14_14_48

With 120+ ms, there is a variable--but usually lesser--amount of crackling. I've gotten it to work properly once so far :laughing: . This happens with or without Special K and ReShade enabled. Running the game through the launcher has no discernible audio crackling.

Running the game as a custom command doesn't give me gamelaunch logs--which may be by design--so hopefully it's not a problem if some of them are missing from the list :pray:

As always: I'm not sure which--if any--of these things STL can fix, but I figured I'd toss them out there all the same.

Thanks!

Logs

477740_no_launcher_specialk_auto.conf.zip 477740_steamtinkerlaunch_no_launcher_specialk_auto.log steam-477740_no_launcher_specialk_auto.log

477740_gamelaunch_launcher_specialk_auto.log 477740_launcher_specialk_auto.conf.zip 477740_steamtinkerlaunch_launcher_specialk_auto.log steam-477740_launcher_specialk_auto.log

601050_no_launcher_60msec.conf.zip 601050_steamtinkerlaunch_60msec.log steam-601050_60msec.log

601050_no_launcher_120msec.conf.zip 601050_steamtinkerlaunch_120msec.log steam-601050_120msec.log

601050_gamelaunch_launcher.log 601050_launcher.conf.zip 601050_steamtinkerlaunch_launcher.log steam-601050_launcher.log

CartoonFan commented 7 months ago

I also just realised I should put the help wanted label on here. I'll do that now :-)

No problem! Now's better than never :grin:

Sorry, no idea for Steins Gate. It stills works on my end 😦

I think I might've made some progress figuring things out. Like FFXII, it seems to work once per prefix. My most recent workaround is to launch once with Proton Experimental, delete the compatdata-Proton-GE-8 prefix, switch to Proton-GE 8-25, then launch the game.

Running without d3dcompiler_47 doesn't seem to work, producing this dialog box:

2023_12_11_12_03_35

So I added to the DLL to STL's Winetricks area, which allows the game to launch normally.

As I write this, the game is in the process of launching, so I'll be able to give a better picture if my guess turns out to be correct. I still don't understand the necessary conditions to have the subtitles appear :confused:

sonic2kk commented 7 months ago

The DLL thing and one-per-prefix thing sounds like there may be some configuration issue somewhere, I have also never seen that problem before, and Steins Gate shouldn't need d3dcompiler_47 at all, so it's very strange...

Maybe a clean install of STL would be worth trying, backing up your global, default, and per-game config files, but not using them right away. And you can try removing any symlinks that might have been created in the compatdata folder for the Steam library folder where Steins Gate is installed to (and any other games). I know that's gonna be a huge pain no matter how you slice it so if you have a workaround, there is no hurry or anything, but something to keep in mind.

Something very strange is going on with your prefixes I think and I can't really understand why. I get the feeling that some global compatdata is being used incorrectly for some of your games despite turning that setting off in STL, and/or STL is borking some of your prefixes for similar reasons.

sonic2kk commented 5 months ago

I can't remember if it came up in this issue or in another, but I am 99% sure we had previously discussed whether the PCGamingWiki allows you to use some kind of API to get game pages by AppID. I found that it does, SteamDB has a link to the PCGamingWiki (and Steam Store pages have this link too if you use the SteamDB browser extension). The link is as follows: https://pcgamingwiki.com/api/appid.php?appid=<appid>&utm_source=SteamDB. You can leave out utm_source, and then slot in your AppID.

The issue of auto-detecting the renderer due to potentially inconsistent page structure still stands, but this was a useful tidbit I just discovered :smile:

CartoonFan commented 5 months ago

I can't remember if it came up in this issue or in another, but I am 99% sure we had previously discussed whether the PCGamingWiki allows you to use some kind of API to get game pages by AppID.

I think I found it :smile:

https://github.com/sonic2kk/steamtinkerlaunch/issues/968#issuecomment-1797116645

I found that it does, SteamDB has a link to the PCGamingWiki (and Steam Store pages have this link too if you use the SteamDB browser extension). The link is as follows: https://pcgamingwiki.com/api/appid.php?appid=<appid>&utm_source=SteamDB. You can leave out utm_source, and then slot in your AppID.

The issue of auto-detecting the renderer due to potentially inconsistent page structure still stands, but this was a useful tidbit I just discovered πŸ˜„

Nice! Anything to streamline the whole process is greatly appreciated :grin:

sonic2kk commented 1 month ago

It would be interesting to know if #1124 makes any difference here with these, the Steam Linux Runtime can help compatibility issues, although these had strange behaviour that I'm not too sure was related to the Steam Linux Runtime in the end (normally games will simply crash if they need the SLR). You never know though, there could be some libs that didn't play nicely without the SLR's versions!

CartoonFan commented 3 weeks ago

Sorry for the delay :pray:

Honestly, I'd have to re-familiarize myself with this issue to really test this :laughing:

Looking briefly above: Steins;Gate and Final Fantasy XII seem to be the games that still have unresolved issues. I haven't played either in a while, so... :thinking: :sweat_smile:

But I can certainly try, right?


I also had some...questions and suggestions for addnonsteamgame?

I'm so chaotic, I know; but...I'm still not used to making issues for small stuff like this :laughing:

That's it, I think :sweat_smile:

If this section is better as a separate issue (which it probably is), just let me know, and I'll make one.

Thanks! :pray: :purple_heart:

sonic2kk commented 3 weeks ago

Dang, oh well. I could hope, right? :sweat_smile:

Steins;Gate and Final Fantasy XII seem to be the games that still have unresolved issues

It would be interesting to retry FFXII in particular. I remember that one being really strange (a saving bug iirc?)


How would you add DosBox/ScummVM/etc. games that don't use a single executable?

That depends! If running through Wine, you can create a Windows shortcut (.lnk file) or a batch script (but make sure to select a Proton version). If they're running natively (both of these are available natively, but some users run them through Wine) you can use a shell script.

It'd be nice to save some defaults for the addnonsteamgame GUI

There are intentionally as few defaults as possible apart from those that would cause some breakages. The only default I can think of is the StartDir which defaults to the EXE dir to better match Steam's behaviour.

I wonder if there's a way we could pick up flags from the commandline usage though. If a user leaves off the EXE but passes other flags we could set those fields on the UI. For example runniing steamtinkerlaunch ansg --proton="proton_9" would open the UI with that Proton version selected (although mapping that might be difficult, but other fields that are just simple textboxes that need text inserted would be more straightforward I think).

This would allow for customising your own defaults for your own use-cases, as the defaults you want may not match what someone else wants, because everyone's use-cases are different. Plus your defaults this time around might be different next time around (maybe you want to batch-add native games where you don't want a Proton version defaulted for example).

Would it be possible to have the addnonsteamgame GUI reopen after adding a game?

I think so, yeah. We have some logic in SteamTinkerLaunch to re-open the GUI after a game closes, and we re-open the GUI with the Crash Guesser, so there's precedent and probably a pattern in place already.

Feel free to open a separate issue for this one.

CartoonFan commented 3 weeks ago

As always: thanks for the prompt reply :pray:

Dang, oh well. I could hope, right? πŸ˜…

Steins;Gate and Final Fantasy XII seem to be the games that still have unresolved issues

It would be interesting to retry FFXII in particular. I remember that one being really strange (a saving bug iirc?)

Got it. Hopefully shouldn't be that hard to test :grimacing:

But, yeah: I remember it being a saving bug, as well.

How would you add DosBox/ScummVM/etc. games that don't use a single executable?

That depends! If running through Wine, you can create a Windows shortcut (.lnk file) or a batch script (but make sure to select a Proton version). If they're running natively (both of these are available natively, but some users run them through Wine) you can use a shell script.

I can tell you're really creative with shell scripts :laughing:

I'm wondering if Python scripts would work here, too, though? Granted...most game scripts I've seen are of the .sh variety, but I'm a bit curious :thinking:

It'd be nice to save some defaults for the addnonsteamgame GUI

There are intentionally as few defaults as possible apart from those that would cause some breakages. The only default I can think of is the StartDir which defaults to the EXE dir to better match Steam's behaviour.

I wonder if there's a way we could pick up flags from the commandline usage though. If a user leaves off the EXE but passes other flags we could set those fields on the UI. For example runniing steamtinkerlaunch ansg --proton="proton_9" would open the UI with that Proton version selected (although mapping that might be difficult, but other fields that are just simple textboxes that need text inserted would be more straightforward I think).

This would allow for customising your own defaults for your own use-cases, as the defaults you want may not match what someone else wants, because everyone's use-cases are different. Plus your defaults this time around might be different next time around (maybe you want to batch-add native games where you don't want a Proton version defaulted for example).

Yeah, I tried --use-steamgriddb on the commandline, but it didn't transfer over to the GUI :sweat_smile:

Would it be possible to have the addnonsteamgame GUI reopen after adding a game?

I think so, yeah. We have some logic in SteamTinkerLaunch to re-open the GUI after a game closes, and we re-open the GUI with the Crash Guesser, so there's precedent and probably a pattern in place already.

Feel free to open a separate issue for this one.

When you say "this one"; you mean just this last point, right? Or the last two bullet points, or...?

Sorry, just want to make sure I'm putting just what needs to be there :pray:

sonic2kk commented 3 weeks ago

Ah I should've clarified, any script will do, so long as your system can run it. For Python it'll depend what the default program to run the script is but usually it's a text file, so a Python file would basically get executed by Steam as "./path/to/script.py`.

You could also add .desktop files, if you have those for your application (or create one, where you can specify the command to run in the Exec section, i.e. Exec=python3 /path/to/script.py.

If you can run the file you want to add by double clicking on it, then you can add that file directly with Add Non-Steam Game. Steam basically just does the frontend equivalent of double clicking on the file to run it (It basically just cds into the folder runs ./ if memory serves).


You can open an issue for both in one issue. I think they are related enough but that's probably only in my head, since if you want to re-open the menu you might also want the defaults populated again :-)

It's been a particularly busy week but I'm hoping for a new release soon, and the remaining major feature work is around Non-Steam Games (#949 and #960, the last part of #960 includes resolving #949). So I'll try to squeeze this in since I'm in and around that area (and maybe a shortcut to remove Non-Steam Games, I'll see!)