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.19k stars 73 forks source link

SteamDeck - Winetricks list of selected packages is piling up #543

Closed astromediaonly closed 2 years ago

astromediaonly commented 2 years ago

Version used: v11.0 I selected Winetricks category and was trying different combinations of dlls selected to get one game working but every time i pushed "SELECT" button, chose some and closed the selection I noticed after a while that the list of selected libraries under "Currently selected packages:" is growing with lot of duplicates and soon it was outside of some internal boundary for touch/cursor zone and Im not able to even reach those buttons down anymore. I dont have much experience with neither linux nor winetricks so I dont know if its not supposed behavior but it does not look right.

sonic2kk commented 2 years ago

This doesn't sound like expected behaviour to me, there could be some problem with Winetricks and Steam Deck. In fact, I'm not even sure if Winetricks is expected to work on Steam Deck.

On my Deck running SteamOS 3.3 with the Steam Beta channel, wine nor winetricks are present. As you are new to Linux I would guess not but to be sure, did you manually install wine and/or winetricks?

Either way, Winetricks shouldn't have this kind of behaviour that you are describing and it is almost certainly a bug, so thank you for reporting! I would wager the solution here is to

  1. Probably disable Winetricks from doing anything on Steam Deck (maybe show a dialog? though that might be hard from a technical point of view because of yad)
  2. Document on the Steam Deck Wiki that Winetricks won't work
  3. Fix the weird duplication bug. I haven't tried to reproduce it in all honesty but it should be fixable.

Fortunately if you need to use Winetricks, you have a couple of options that don't need SteamTinkerLaunch:

Protontricks Flatpak

If you're using a regular Steam game, you can install the Flatpak for Protontricks! You can search for it in the Discover store (a blue bag icon, it should be pinned in the taskbar on Desktop). This is your best bet!

If you see instructions for Protontricks on places like ProtonDB, you will probably have to install them manually. I'm not sure if there's a way to run the Flatpak Protontricks from the command line. At least on my Deck I haven't figured it out yet :sweat_smile:

If your game won't launch after using Protontricks

Currently there is no simple way of "uninstalling" a Protontrick due to the nature of how many of them work.

If you install something with Protontricks and your game no longer launches or has other issues, you can fix in Game Mode by opening the Options menu (pressing the "Start" button while your game is highlighted in Game Mode), going to "Developer" and selecting "Clear Proton files". NOTE: If your game does not have Cloud Saves, this may remove save data if it is not stored with the installation files for the game! Essentially clearing the Proton files removes the "Proton prefix", which games essentially look at as a "Windows install". Basically, when you remove this folder, imagine you were wiping your Windows installation but your games were on a separate drive. You'll lose all that data when you clear Proton files basically. This is only a problem for a handful of games (Sonic Adventure/Sonic Adventure 2 come to mind) where save files are stored in appdata folders or the documents folder.

If you need to back something up before removing your Proton files, it's very straightforward. If you know your game doesn't have Cloud Saves for example, consult the PCGamingWiki for information on where save data is stored for a game, looking at the Windows path.

Next, from Desktop Mode you'll want to launch your game with SteamTinkerLaunch, go to the Main Menu, click the "Game Files" button, check the "WINEPREFIX" checkbox and click "SELECT", then a file manager window should open up. From here, you can close your game (press the blue "Stop" button from Steam), open the drive_c folder and now you can follow the path to wherever the files you need to back up are. With Proton, the username is always steamuser! So if PCGamingWiki says you need to get something from C:\users\USERNAME\Documents\, with Proton (assuming you're in the drive_c folder) that'll be under users/steamuser/My Documents/. Hopefully you can figure out how to navigate to your files once you're inside the drive_c folder :smile:

Lutris Flatpak (mainly for Non-Steam Games)

If you're not using a regular Steam game and are using a non-Steam game, you can install the Lutris Flatpak beta (don't just install from Discover, follow the instructions on the link!), then try to run Winetricks from there, and after that you can add the game as a Steam shortcut (close Steam before doing this). This might also work for regular Steam games but there shouldn't be any need, as Protontricks should work.

For this approach I'm not sure if you can still use STL with Non-Steam Games added through Lutris. Luckily Lutris offers some configuration options, though they are not as full-featured as STL, but on Steam Deck this should be negligible for non-Steam games.

Other Proton flavours

However, I would like to point out that there are other "flavours" of Proton (the tool that is used to run Windows games on Linux) available. My preferred flavour is called GEProton, and this has various patches and fixes for games included. This means sometimes you can use a version of GEProton in place of using Winetricks/Protontricks, though not always. For example, GEProton had patches for cutscenes in "Persona 4 Golden" about a year before Valve's stable Proton had its fixes (they took different approaches afaik, hence the delay :smile:)

To use different Proton flavours you have a few options:

Manual

You can download the file from the GEProton repository yourself and place it in ~/.local/share/Steam/compatibilitytools.d (creating the folder if it doesn't already exist). You'll have to restart Steam after this to refresh the list of compatibility tools

SteamTinkerLaunch (of course :slightly_smiling_face:)

Use SteamTinkerLaunch to download a custom GEProton version, under the "Download custom Proton" button. This should work on Steam Deck, though haven't tested. As far as I know this means the Proton version will only be available for use with SteamTinkerLaunch, meaning you can't use it for other games if you're not using STL (I think STL places it in a specific folder somewhere in ~/.config/steamtinkerlaunch).

ProtonUp-Qt Flatpak

Install the Flatpak tool ProtonUp-Qt, which lets you manage installed Proton versions for Steam, among other things. This means you can install GEProton from this tool and use it for games regardless of whether they use SteamTinkerLaunch. It also lets you visibly see which compatibility tools (e.g. custom Proton flavours) you have installed, and it lets you upgrade and remove them too. There might be regressions in some versions of GEProton or other custom Proton flavours that break some games, so some users might have several different versions of, say, GEProton installed, which is why this tool lets you manage multiple GEProton versions. You will still have to restart Steam after installing/upgrading/removing versions.

Using Custom Proton flavour

Steam Games

If GEProton could fix your issue it might be easier to install that than to fiddle around with Protontricks. However I should also mention you can use a GEProton release and use Protontricks! To use a version of GEProton once it's installed:

  1. If you aren't using SteamTinkerLaunch, you can select it from the forced compatibility tool dropdown (the same place where you selected Steam Tinker Launch!)
  2. If you are using SteamTinkerLaunch, select it from the Game Menu. Under "Proton Options" there is a dropdown for choosing a Proton version

Non-Steam Games

If you are using a non-Steam game from Lutris, there is a version of GEProton made for use outside of Steam called Wine-GE, with the same maintainer as GEProton. This has virtually all the same fixes that GEProton will have but is made for use outside of Steam, with Lutris in mind. So if you have a Non-Steam Game you might also not have to fiddle around with Winetricks!

The ProtonUp-Qt program mentioned earlier also lets you manage, download, upgrade and remove Wine-GE versions from Lutris! You'll probably also have to restart Lutris after changing Wine versions.

The dropdown in the top bar of the program lets you switch between Steam and Lutris Flatpak. In Lutris you can change the Wine version by right clicking on your game, going to Configure, clicking on the "Runner Options" tab and changing the Wine version.


I know this reply was a bit of a book but I wanted to give as much information and background on getting around the Winetricks limitation on your Steam Deck. Happy tinkering!

astromediaonly commented 2 years ago

Wow thats kinda overwhelming :D ... Ok .. So I installed somehow wine (and probably also winetricks) manually but dont ask me how :) (probably some steamdeck tutorial or script somewhere) - I have no idea what I was doing and I was able to break part of that app discovery app/store in the process :D :/. I would probably appretiate to have some "reset winetricks" button to atleast clear my selection.

To clarify my position - Im programmer and have some experience with getting stuff working so Im not "pushing buttons" completely blindly and I was also tinkering with some stuff on Raspi and so but overall I cant get used to how linux is designed to be used around cmd line, package managment and overall architecture and most of the time if some error is thrown somewhere I cant decode what it says or how to fix it and google usually does not help much because there is thousand ways how to do something and hundrets of variations of linuxes and installed packages and If you are not grown on Linux from start or using it actively for work it makes you completely lost. I started as an artist and on windows so I prefer user-friendly environment, intuitive UI and buttons for things :) which Linux most of the time does not offer. Thats also why I was and am very greatfull and happy I had found SteamTinkerLaunch - its great tool for ppl like me who dont want to mess with "low level linux stuff" on the background and just click what they want in UI :)

I had tryed to install Protontricks as you suggested but it does not seems to launch on Steamdeck (atleast atm and im not the only one experiencing this because it has reviews mentioning it). And Im also not sure how to use it in Game mode properly if it worked.

I wish when something like ProtonDB exists there would be some "Use community setup" button what would make it work without me needing to mess with console, trying to tick and untick a lot of things and potentialy borking it even more :)

GEProton sadly does not seems to have fixes for this game from what I was able to see on that list on github. The game in question is "Secret World Legends" (if it helps somehow) (its game on Steam but designed for windows) - its sadly kinda niche atm and from what I see on ProtonDB it has kinda "Schrödinger" playability :D :/

I appretiate all this info tho, I did not expected you will spend so much time on me, thanks.

sonic2kk commented 2 years ago

Ah, to install things like Wine/Winetricks on the Steam Deck you have to disable its read-only filesystem. This means on the next SteamOS system update (separate from Steam update) it'll clear those packages :slightly_smiling_face:

Linux can be a bit of a learning curve but it comes with time, I've been using Linux for the last 12 years and grew up with it pretty much. I'm not an expert, just a long time user :)

I've seen the reviews of Protontricks myself on Discover, though it worked for me without issue and still does work for me, I tested just now. As for using it in Game Mode, you don't actually use it in Game Mode. Basically, Protontricks is a frontend for installing game fixes, and once they're installed you don't need to use Protontricks at all. The game will automatically uses those fixes!

The good news though: If you have Winetricks installed, you should be able to install the Winetricks listed for that game on ProtonDB :smile:

From Desktop Mode you'll want to launch your game with SteamTinkerLaunch, go to the Main Menu, click the "Game Files" button, check the "WINEPREFIX" checkbox and click "SELECT", then a file manager window should open up. From here, you can close your game (press the blue "Stop" button from Steam). On the top of your file manager you should be able to see your file path. Right click and select "Copy".

Next, open your terminal (called "Konsole") and type the following, replacing <path> with the path you just copied above. Mind the quotes!

WINEPREFIX="<path>" winetricks -q --force d3dx9_43 d3dx11_43 d3dcompiler_43

According to ProtonDB, these are the Winetricks that your game needs. Also, many people on ProtonDB seem to recommend switching to Proton 4.11-13, which is incredibly old but may be required. I would recommend trying the latest Proton, Proton Experimental, and GEProton (in that order) before resorting to such an old Proton release.

Essentially this command for Winetricks will download a set of DLLs and move them into your Proton prefix, which is where the game looks for DLLs. The ones packaged with Proton may be incompatible or may be missing features for a very small number of games. The first part of the command, WINEPREFIX="<path>", tells Winetricks where to put those DLLs. The -q command means "quiet", in other words it won't show any installer windows. Sometimes in this case, --force may be required. In my experience it can sometimes be safer to add that flag after -q.

Hopefully that solves the issue :-) Good luck and happy tinkering!

astromediaonly commented 2 years ago

Hmm I did not remember I disabled anything ... I thought there is user part where you can install anything and core part where you cant install no matter what (which kinda screws you if you need drivers or something for example).

I see, neat. Thanks for all the info, its much appretiated. I have one question before I try that if I may - As I have set up some libraries already (using steamtinkerlaunch as mentioned above) will that command you posted override my selection or add to it? If it only adds what is missing I will probably need some clear command too :)

sonic2kk commented 2 years ago

It shouldn't override anything as far as I know, but if you have any issues you can delete the Proton files and try to run the command again (from Game Mode, select your game, press the "Start" button, go to Developer and select "Delete Proton files).

Good luck! 😄

astromediaonly commented 2 years ago

I see, hmm weird - I deleted proton files for that game, it downloaded like 8GB again after that and when I checked that list of installed wine libraries in steamtinkerlaunch they were still there ... hopefully they are just cached somewhere and are not realy still there physicaly if you say that "Delete Proton Files" should work .. thanks

sonic2kk commented 2 years ago

If they're still there, they might have installed to your ~/.wine prefix, but that would be strange. I think maybe it is just cached :sweat_smile:

As for the 8GB it downloaded, that could be shader caching content. I'm not sure if deleting Proton files also clears the shader cache.

astromediaonly commented 2 years ago

I see, weird magic :) ... sadly bash told me winetricks: command not found so Im probably out of luck ... hopefully you will eventually find some time and way to fix that issue ... it would be nice to get it working but its nothing I couldnt live without right now and I dont want to bother you that much with general help outside of the scope of this project.

sonic2kk commented 2 years ago

There is another open issue with Winetricks on Steam Deck, so I think either Winetricks won't work correctly on Steam Deck or there is some sort of bug with how it works. I'm not sure when I'll have the time to try and figure it out sadly but hopefully someone else can pick this up :-)

In the meantime your best bet is to figure out why Protontricks isn't working. That should allow you to install the tweaks needed for your game

astromediaonly commented 2 years ago

Just FYI - got eventually Protontricks working but had to run them using flatpak run com.github.Matoking.protontricks -v --gui from cmd line - it did not wanted to launch by it self. Sadly no matter what stuff I install the game does not work :/ ... closest I was was Proton 6.something - launcher was still not visible but made sound and tryed to launch the game atleast, splashscreen showed and then it crashed and I gave up after few hours of mostly crashing on launcher. I have no clue what it does not like this time. Hopefully Valve will find some way to get it working in reasonable future in their attempt to make most of the library to work.

I still appretiate all the info and help, I will probably use it in the future to get working something less stuborn hopefully :) If you/somebody will want me to test if this was fixed later feel free to contact me.

sonic2kk commented 2 years ago

Glad you were able to get Protontricks working :smile:

As for older Proton versions, according to ProtonDB the game requires Proton 4.11-13, which if memory serves is about 3 years old at this point :sweat_smile: For what it's worth, on my Deck I am able to select this version of Proton (from both Game Mode and Desktop Mode) from Properties > Compatibility > Force the use of a Steam Play Compatibility Tool. If you can't do it on Game Mode for some reason I would try doing it from Desktop Mode if you can.

Before running the game, I recommend doing the following:

  1. Clear your Proton files again (switching to an older Proton version means its usually a good idea to clear Proton files)
  2. Run the game at least once, then close it it (if it doesn't crash). In doing this Steam will have to download Proton 4.11-13, so that you can run your game with it (Steam lists older versions of Proton, but it still has to download them first!). I think it's about 1GB, and you should be able to see it in your Downloads menu.
  3. Install those Protontricks fixes again. This way you're installing them into a fully compatible Proton 4.11-13 prefix

If you want to use SteamTinkerLaunch again with the game, after you have ran it at least once with Proton 4.11-13, you should be able to use SteamTinkerLaunch as a compatibility tool and then select 4.11-13 as a Proton version in STL's settings, as now that version of Proton has been downloaded. Steam will list available Proton versions including those that have not been downloaded, whereas SteamTinkerLaunch will only list installed Proton versions.

The game does seem to be quite stubborn and unfortunately I don't own it so I can't fully test. Hopefully that gets you somewhere though; basically the steps I listed set the game up again with Proton 4.11-13, reinstall the same fixes you applied but in a way that should prevent any conflicts with Proton 4.11-13, and then you can select Proton 4.11-13 with SteamTinkerLaunch.

No worries about giving help, I appreciate all your patience with this :sweat_smile: As for this being fixed in future versions of Proton, I have a good amount of hope for it. I'm no Wine developer, but issues related specifically to the d3dcompiler related Winetricks seem to eventually get fixed even if they take a while. From what I understands, Winetricks downloads the "official" DLLs which should have full functionality, whereas with Wine/Proton they are re-implemented, and Wine's d3dcompiler_43 DLLs are missing functionality for this title. I've also seen fixes like this come to GEProton before upstream Proton, so it could be fixed in a community flavour of Proton sooner rather than later!

Happy tinkering, I hope you can get your game working :smile:

astromediaonly commented 2 years ago

Thanks for recomendations ... I had tryed Proton 4.11-13 but it did not help ... I was not able to clear proton files and install those proton tricks again because Protontricks was very adamant about "Proton 4.11-13" not being supported anymore :D ... those protontricks seems to persist between installs tho so I guess it would worked if it could ... I guess Steam Deck has something different from Linux most ppl run this game on ... probably something stupid like missing Flash or something (I think I remember reading somewhere it had Flash based UI ... reson why its not working will be probably less straightforward but who knows :) )

The game is free to play if I remember right tho so if you will be up to challenge some day you should be able to try :D Either way thanks so much for your time, despite not being able to make that much progress you have made lot of great tips and provided valuable info about how this stuff works in background.

sonic2kk commented 2 years ago

Ah I guess the verb versions needed for Protontricks aren't supported anymore. That's a shame, there is probably a way to manually set it up but sadly I can't help you there.

The Steam Deck runs SteamOS which is indeed different from regular Linux installs. It's close but not identical to Arch Linux, and there could be things missing, but I would say people that got it running with Proton 4.11-13 are either using an outdated version of Protontricks/Winetricks, or got the fixes installed before 4.11-13 was unsupported.

I'm glad I was able to provide some useful information :smile: Sorry we couldn't get it resolved, it does seem like perhaps this game is just not destined to run on Proton. Perhaps at some point I'll give it a try and see if I can get it to run on my PC or Steam Deck, since it's free to play. At the very least thankfully this doesn't seem to be specific to SteamTinkerLaunch, so if/when Valve can get it working it should work with SteamTinkerLaunch

sonic2kk commented 2 years ago

I had a quick scroll through the Proton issue for the game and it seems like people are having issues. Might be worth posting that you're having issues with the game there too in order to bring more attention to the game: ValveSoftware/Proton#1511

sonic2kk commented 2 years ago

@astromediaonly Did some research and I wanted to correct something:

So my initial idea that STL relies on system Winetricks seems to be incorrect. The Winetricks wiki says Winetricks can optionally be downloaded if it's not found on the system, by setting DLWINETRICKS to 1. This is set in the Global Menu under the Wine options (should be at the very bottom) by checking the "Winetricks download" option.

However, on Steam Deck, this is not checked, and so this could be causing your issue. I don't have any games on Deck I need any Winetricks verbs for, but if you could enable this option and try to use Winetricks again I would be very interested to hear your results! :smile:

astromediaonly commented 2 years ago

Hmm, checked the option but nothing I can see changed - The list has still duplicate items and its outside boundaries of interactability and nothing seemed to download so I guess it found some winetricks already installed somewhere - it would be weird to give me (bad but still) controll over something I dont have :).

frostworx commented 2 years ago

sorry, I appreciate the discussion here but don't have the time to read the backlog to find out what you already tried (apparently a lot). If you could sum of the current situation I could try to help. A log would be a good start (sorry if I missed it in between).

Just tried winetricks on the steamdeck for #549 and basically it seems to work fine on the steamdeck and "only" requires cabextract to extract specific packages. some random hints:

Reading the initial issue I'd guess though that the variable WINETRICKSPAKS is expanded with the already selected items when opening the steamtinkerlaunch winetricks gui again. this would probably require a fix in function WinetricksPick

astromediaonly commented 2 years ago

Sorry, the situation is same as on start, most of the discussion was way how to deal with my problem potentialy outside steamtinkerlaunch. I checked /dev/shm/steamtinkerlaunch/WINETRICKS.log - its kinda short and most striking is warning Cannot find cabextract. I was trying to find a way how to install it but it seems not as straightforward (because steamdeck has not writable keyring?) so if you can advice me how to proceed it would be appretiated. About restarting - Im doing it once in a while because of updates but I can clear that folder if you think it will help something.

EDIT: found an easy-ish way how to transfer complete WINETRICKS.log from steamdeck, here you go if it helps somehow

SSL_INIT
Executing mkdir -p /home/deck/.local/share/Steam/steamapps/compatdata/215280
------------------------------------------------------
warning: You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Using winetricks 20220411-next - sha256sum: 21b02a664138a9fad565fedf39f115d0551e63879c3761961f16caf6769a4f3e with wine-7.0 and WINEARCH=win64
Executing w_do_call d3dcompiler_42
Executing mkdir -p /home/deck/.local/share/Steam/steamapps/compatdata/215280
------------------------------------------------------
warning: You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_d3dcompiler_42 
------------------------------------------------------
warning: Cannot find cabextract.  Please install it (e.g. 'sudo apt-get install cabextract' or 'sudo yum install cabextract').
------------------------------------------------------
frostworx commented 2 years ago

thanks for testing. so your problem is identical to that in #549 yeah, it would be easy to fix if you could simply install packages globally into the os globally. You could temporarily make your os writable and simply install cabextract with pacman, but the next steamos update will remove it again. the only theoretical solution would be to add a function to steamtinkerlaunch, which downloads/installs cabextract into (the user writable dir) /home/deck/stl/deps/usr/bin/. this could be easy to implement, but as well could be complicated, depending on how many dependencies cabextract has, which are not available on the system. either way I can't tell if or when I find the time to look into this.

sonic2kk commented 2 years ago

Cabextract only depends on glibc (there's a joke in there somewhere about recent events :laughing:).

Should be easy enough to just download it from the Arch repos and add it to /home/deck/stl/deps/usr/bin. I wonder how hard it would be to get STL to do that itself...

frostworx commented 2 years ago

thanks for checking 👍 I already have similar functions in function steamdedeckt (yeah, "funny" 😏) and it should be pretty simple to add it then. I'll take a look within the next days.

edit: seems like we have to use https://archive.archlinux.org/packages/c/cabextract/cabextract-1.9.1-1-x86_64.pkg.tar.xz because https://steamdeck-packages.steamos.cloud/archlinux-mirror/extra/os/x86_64/ doesn't offer cabextract.

(of course the version needs to be bumped when the repo bumps one day and drops the old version)

frostworx commented 2 years ago

hm, wait. I'll add it just right now (only in steamdedeckt though) give me a sec

frostworx commented 2 years ago

https://github.com/frostworx/steamtinkerlaunch/commit/c03f198d56b38d37eb53df9c1637bc30f1b76f4b should work. please test :)

sonic2kk commented 2 years ago

Haven't tested but just wondering:

(of course the version needs to be bumped when the repo bumps one day and drops the old version)

Is it possible for STL to (reasonably easily) look at https://archive.archlinux.org/packages/c/cabextract/ and fetch the most recent package?

frostworx commented 2 years ago

sure shouldn't be too hard to implement ;)

astromediaonly commented 2 years ago

Trying to test but Im not sure with procedure - is it enough to rerun the install script I had from first install on desktop or it requires something different?

frostworx commented 2 years ago

on the steamdeck, steamtinkerlaunch should automatically update to latest git version. iirc it does this when starting, so you might experience the updated version on the second launch. (easy to find out by checking the steamtinkerlaunch version in the main menu - should be v11.1.20220830)

astromediaonly commented 2 years ago

Neat! Version seems to match but log still mentions it cant find cabextract ... I hope im not doing something wrong.

frostworx commented 2 years ago

logs please

astromediaonly commented 2 years ago

WINETRICKS.log steamtinkerlaunch.log

Sorry, getting used to this still a bit ... developer-releated operations are hard without keyboard and mouse :) Are those two enought?

frostworx commented 2 years ago

thanks. just pushed an update which works (only tested automatic cabextract download/install, not winetricks itself, but as the deps path is in $PATH it should just work)

astromediaonly commented 2 years ago

I see, thanks. cabextract seems to work. The issue it self still needs to be fixed but its progress :). Also it would be nice to better handle UI on different screen sizes - main menu has crucial bottom buttons under taskbar on desktop mode and that list of winetricks which accumulated out of screen is issue too - in this case I would appretiate some form of scrollview if possible.

frostworx commented 2 years ago

I'll look into the minor glitch (described here). no idea when though

regarding gui: sorry, I'm done with this topic, but you're invited to dig through the yad internals, find a solution and implement it anytime though :)

frostworx commented 2 years ago

hm, can't reproduce the problem: "Currently selected packages" only lists those packages which I have selected - no duplicates. When unselecting a previously selected package, it is removed from the list properly. can you give exact steps required to reproduce the issue?

I'll rewrite the "Currently selected packages" list to be comma and not new line separated - should help with your follow-up problem.

astromediaonly commented 2 years ago

Im not sure how to reset it into blank state but that comma list should atleast help me to reach buttons again ... I will give it a try then.

frostworx commented 2 years ago

above commit outputs the selected packages comma-separated. you can always edit the selected winetricks packages also in the "GAME MENU" under "Winetricks packages"

astromediaonly commented 2 years ago

Ok, I click Winetricks/Select then I dont need to even choose anything except those I have already selected, click Select in that window and after it closes the list is larger than it was before. I tryed to capture it before/after ... sorry for photo, Im not sure how to screencapture linux. after before

astromediaonly commented 2 years ago

Thanks for pointing out "GAME MENU"/"Winetricks packages" - I was able to clear it there and start fresh ... glitch still appears as per instructions in my previous message but I can controll it atleast :)

frostworx commented 2 years ago

"already installed" is a detail you didn't mention... please check/remove the winetricks.log in your wineprefix

edit: ok you even mentioned "already installed", but it looked more like a guess than a snippet from the log :)

frostworx commented 2 years ago

please test above commit

astromediaonly commented 2 years ago

If I was supposed to just launch it again (tryed twice to be sure it was updated if there was one - those last did not changed version number so I cant be sure) and test the sequence leading to duplication it still duplicates. Here is log if its relevant: steamtinkerlaunch.log

EDIT: removed the log before as mentioned

sonic2kk commented 2 years ago

@astromediaonly you might have to clear /dev/shm/steamtinkerlaunch and try launching again. You can try that and see if you still end up with duplicates.

astromediaonly commented 2 years ago

I gave it a try and it still happens, weird.

frostworx commented 2 years ago

can you reproduce this with a different game and/or a clean wineprefix?

astromediaonly commented 2 years ago

Yes, tested it on different game, still happens

frostworx commented 2 years ago

can you give exact steps required to reproduce the issue with a clean wineprefix?

astromediaonly commented 2 years ago

I have installed new game I never had on deck before (I hope this qualify as clean wineprefix), selected STL as compatibility tool, runed it, closed it, runed it again, got into STL menu, selected "Winetricks", then "Select" button, chosen d3dcompiler_47, d3dx10_43, d3dx9_42, d3dx9_43, d3dx9 for example, clicked "Select" button, they are in the list OK, then click "Select" button again, dont choose anything just click "Select" button and now you have those packages in list duplicated.

PS: if you leave it on default resolution and use steamdeck connected to 1920x1080 monitor you are unable to get mouse to those bottom buttons as well like there is invisible barrier mouse cant go under (just to expand my report of unability to use those buttons when the list is too long)

frostworx commented 2 years ago

thx, I can reproduce the issue on the Deck. Should be easy to fix.

Regarding invisible barrier: I'd guess this is related to the forced gamescope mode the Deck uses and therefore probably not fixable from steamtinkerlaunch side.

astromediaonly commented 2 years ago

Np, thanks.

I see, I dont know how it works exactly but I guess in theory there should be way to figure usable resolution/screen part and scale the STL window acordingly but I understand you dont want to deal with that considering the UI not being much responsive/flexible atm :)

frostworx commented 2 years ago

should be (mostly) fixed with above commits. "mostly", because the incoming duplicates from the configs are not filtered out yet when opening winetricks on the first run. they should be filtered out properly though when closing the window, therefore might not be necessary to add an incoming filter.

edit: just tested the fix on the Deck and it works fine for me. The incoming duplicates are automatically removed from the config after having closed winetricks.