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

Lutris and GE wine builds #660

Closed
zany130 opened this issue Nov 14, 2022 · 9 comments
Closed

Lutris and GE wine builds #660

zany130 opened this issue Nov 14, 2022 · 9 comments
Labels
enhancement New feature or request

Comments

@zany130
Copy link
Collaborator

zany130 commented Nov 14, 2022

System Information

  • SteamTinkerLaunch version: v11.12.20221114-10
  • Distribution: Garuda Linux

Feature Description

lutris and GE wine builds could be useful

@zany130 zany130 added the enhancement New feature or request label Nov 14, 2022
@sonic2kk
Copy link
Owner

Thanks :-) I said it on the other issue too but for completeness, I am fully in favour of adding these features. Sadly I just don't have time to work on it right now, but in future I am hoping to! It may not make it into v12 though

@sonic2kk sonic2kk added the help wanted Features/Bug Fixes that welcome contributions label Nov 15, 2022
@sonic2kk
Copy link
Owner

sonic2kk commented Dec 4, 2022

Something to note here is that some parts of SteamTinkerLaunch including Steam expect a specific directory structure including a Proton script, which afaik the GE-Wine and Lutris Wine builds do not have (since they are Wine builds). I also suspect they have slightly different directory structures, including GE-Wine which may have a different structure to GE-Proton.

I think the "solution" here is to do two things:

  1. Document that using Wine builds with Steam is unsupported
  2. Update the code to check for a Wine build and try to run with that. Some tools e.g. MO2, Vortex, HMM will expect the Proton script and they are set up to use it, so these tools should probably log a warning when a user tries to select a Wine version to run it with
  3. Log a warning if a user tries to run a Steam game with a Wine build
  4. Investigate writing these out to a separate CSV i.e. WIneCSV.txt, or maybe we can just include them in the regular CSV. The issue here is that some tools e.g. MO2 or HMM, and the Proton mismatch checker, may need updated if we write them all out to the same CSV. There is code which looks for GE in the ProtonCSV.txt file in order to resolve version mismatches. This may need to be changed, maybe setting it to GE-Proton is enough (though I wonder how this would impact older GE-Proton versions...)

The merit in having support for the Wine builds is mainly for custom commands, or at least that's how i see it. I think it would be handy to be able to run a custom command with a GE-Wine build for example. And also, in general, the ability to download these tools would be handy too.

A potential implementation would be to allow downloading these versions, writing them out to a separate CSV file and then showing them in a separate dropdown under "Wine Options". This would override the system Wine and of course the regular Proton version. I also like this approach because it means Wine options won't be listed under "Proton version".

This will unfortunately almost certainly miss v12, but it is something I would like to see added at some point!

@sonic2kk sonic2kk removed the help wanted Features/Bug Fixes that welcome contributions label Jan 2, 2023
@sonic2kk
Copy link
Owner

sonic2kk commented Mar 8, 2023

I think having a separate CSV for these tools is the best solution, and having it as a separate menu option gated behind a checkbox perhaps. I'm not sure where it would go, somewhere separate from the Proton options.

Maybe if possible this should only be shown if the user has downloaded any custom Wine builds, like how we only show MO2 options for users who have MO2 installed.

May look into this soon-ish

@sonic2kk
Copy link
Owner

sonic2kk commented Apr 12, 2023

Actually, it should be possible to just integrate this with the existing Wine download options...

Wine is currently downloaded to ~/.config/steamtinkerlaunch, when really it should probably be in downloads. I will probably do some refactoring that has some code which moves the ~/.config/steamtinkerlaunch/wine folder into the STL downloads folder. Wine is extracted to ~/.config/steamtinkerlaunch/wine, but the downloaded archives go to ~/.config/steamtinkerlaunch/downloads/wine.

@sonic2kk
Copy link
Owner

Ok, I implemented it for Wine-GE and Lutris Wine. PR will be up shortly. Game compatibility may vary, and the SLR is in use by default - not sure if this is a good idea, but it can be disabled by unchecking the SLR option.

A better UI is probably overdue for this Wine downloading. ProtonUp-Qt should let you download the Wine versions and you could move/set a custom install directory, so I am not too worried for now :-)

@sonic2kk
Copy link
Owner

@zany130 PR is up at #783 to implement this at long last :-) Took way too long, I am very sorry about that! But it's ready now.

@sonic2kk
Copy link
Owner

sonic2kk commented Apr 13, 2023

I actually decided to just merge this as it shouldn't break any existing code for Wine, and appears to work.

Wine versions download and extract correctly, though compatibility compared to regular Proton may vary. It's probably best to only use this with Non-Steam Games/custom commands.

Let me know if you run into any issues, and feel free to close if this is resolved now :-)

@zany130
Copy link
Collaborator Author

zany130 commented Apr 16, 2023

sorry it took me a while but finally got around to testing and works for me 👍

@zany130 zany130 closed this as completed Apr 16, 2023
@sonic2kk
Copy link
Owner

No worries, it took me much longer to investigate implementing it (turns out 95% of the groundwork was already there 😅)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants