DavidoTek / ProtonUp-Qt

Install and manage GE-Proton, Luxtorpeda & more for Steam and Wine-GE & more for Lutris with this graphical user interface.
https://davidotek.github.io/protonup-qt
GNU General Public License v3.0
1.24k stars 40 forks source link

add support for wine-tkg for lutris (if possible) #156

Closed DarkReaperBoy closed 1 year ago

DarkReaperBoy commented 1 year ago

https://github.com/Frogging-Family/wine-tkg-git

DavidoTek commented 1 year ago

I think Wine-Tkg is mainly intended for system wide installation. It doesn't ship with many required libraries (e.g. SDL, ...). It probably can be made to work, but afaik this isn't the correct way. Let me know if it works fine or there is a way to make it work properly!

Just wondering, is there any specific problem for a game that occurs with Lutris Wine/Wine-GE that doesn't occur with Wine-Tkg?

sonic2kk commented 1 year ago

I have used Wine-tkg with Lutris before. I don't recall if I used a specific patch or not, but you can use it with Lutris, which has its own Lutris Runtime as well which may have these libraries? I'm not sure, to be honest.

It would need re-tested and probably input from someone more familiar with using CI builds.

Just wondering, is there any specific problem for a game that occurs with Lutris Wine/Wine-GE that doesn't occur with Wine-Tkg?

It wouldn't apply here but one of the main benefits of Wine-tkg (and Proton-tkg) is being able to build it with custom Wine patches, which could fix issues. Also, I think builds like Lutris Wine are based on a much older Wine version, and GE is based on Valve's Wine maybe? Whereas Wine-tkg is, as far as I know (which may be wrong) based on a much newer version of Wine. Newer Wine builds may in some cases have some fixes for a small handful of games, but generally afaik these are patches that were already applied to other Wine builds and have just managed to make their way into mainline Wine.

DavidoTek commented 1 year ago

We could modify the Protok Tkg Ctmod to just install Wine-Tkg for Lutris instead of Proton-Tkg for Steam.

The code should work, only proton needs to be replaced with wine, though I'm not 100% sure about the GitHub CI part/artefact names. The folder structure is quite similar, only the name needs to be changed from usr to wine-tkg-[...].

sonic2kk commented 1 year ago

Feeling brave, so I'm taking a look at this :eyes: Seems straightforward enough for now. I took a similar approach to STL and STL-git where the Wine-tkg ctmod is a subclass of the Proton-tkg ctmod.

As well as the noted folder structure being slightly different, Wine-tkg also packages a .tar.zst instead of just a regular .tar.zst, hooray... (also, the .zip contains the .tar.zst archive just like the .zip containing the tar for Proton-tkg, wtf indeed)

There are various different "flavours" of Wine-tkg available. There are builds based on regular Wine, and Valve's Wine. I think by default both should be available:

In Advanced Mode, we could offer the League of Legends Wine build, though I'm not sure how much benefit there would in that. It would likely be fairly straightforward to add, though.


The renaming/moving required to get the folder structure right for Lutris seems like it's gonna be fun, but once I have at least one ctmod figured out I'll get a PR up :-)

EDIT: PR is up :partying_face:

sonic2kk commented 1 year ago

Implemented (at least partially) in #178. Other Wine-tkg sources can be explored in future PRs :-)

sonic2kk commented 1 year ago

With #181, now builds of Wine-tkg based on Vanilla Wine are available. Is there any further outstanding work that needs done on this? I'd be happy to follow up if there's anything remaining :-)

DavidoTek commented 1 year ago

We have the "main flavors" of Wine covered by now (Proton-Tkg - Valve Wine-Tkg - Vanilla Wine-Tkg using the Ubuntu build).

We can easily add the League of Legends Wine-tkg build if requested.


I think we can close this issue for now. Feel free to reopen if any other ideas arise.

nisehime commented 1 year ago

Can you please also add Proton Tkg Wine Master build for Steam?

sonic2kk commented 1 year ago

I can take a look at this today and probably do it the same way we did for Wine-tkg.

The link given is for the Arch Linux CI, perhaps we should use the Ubuntu CI though like we did for Wine-tkg? Though the current Valve Wine Proton-tkg seems to use an Arch Linux CI. Not sure,

The link given is for the Proton Arch Linux CI, and that is also what Tkg links to on the Readme. The "Valve Exp Bleeding Edge" Proton builds also use an Arch Linux CI. Even though we went with the Ubuntu CI for Wine-tkg, perhaps here we should go with the Arch CI given that's what's linked to on the Readme.

I think, like with Wine-tkg using vanilla Wine, this should be put behind advanced mode.


Generally builds from Wine Master will not be wanted by most users I think. However there are instances where Steam games may benefit from fixes in upstream Wine that are not in Proton yet. One example I know of is "DOOM 3 BFG" working with Wine 8.1 and above, but not with Proton (https://github.com/ValveSoftware/Proton/issues/569#issuecomment-1425958368).

In my experiences especially recently, these are edge cases. But I don't see that as a reason against adding them :-)

I thought about possibly renaming the current "Proton tkg" but that may end up being more confusing for users. Not sure yet, but this should be easy enough to get a PR up for. The archive structure seems to be the same for both Proton-tkg variants (a zip called proton-tkg-build.zip with a tar inside named proton_tkg_<version data>).