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
Is there interest in having upstream Engine again? #474
Comments
Hello @Gcenx : sorry, what do you mean exactly by "upstream engine" ? Do you mean "most up to date wrt to WineCX (or WineHQ) ? |
Upstream meaning Winehq.
The current Engines aka WineCX are based on foss crossover-sources. Since upstream wow64 is now in a good place it might be worth providing these again since it can be made to work under Rosetta2 not just Intel macs. |
OK, cool. When you say "work under Rosetta2": do you mean that it could be built to run natively on Apple Silicon (instead of being built for Intel then translated to Apple Silicon during runtime)? |
Rosetta2 is Apples x86_64 translation layer. wine still need to be x86_64 currently but due to some bugs that affect wine usually something won’t work correctly with upstream wow64. There’s some hacks that can be applied to workaround the Rosetta2 bugs resulting in a functional wine with working wow64 support. |
OK, I see, thank for taking the time to explain. I was confused by what you meant because I assumed that WineHQ wine was working straight out of the box with Apple Silicon: I thought that WineCX modifications were more like optimisations and and high level fixes, I didn't think some fundamental things had to be hacked in order to work. Last question: when you say that current engines are based on foss crossover-sources: does this mean that for example for the WS11WineCX64Bit23.5.0 engine that you provide, you start with https://media.codeweavers.com/pub/crossover/source/crossover-sources-23.5.0.tar.gz but then you add you own hacks / fixes on top of it? |
Correct
The hacks/fixes vary it’s not simple.
It’s usually game specific fixes/hacks.
No.
It’s simply a mirror of crossover-sources |
I see, things are clear now. Thanks a lot for your time! |
This seems interesting. Would it increase performance or just minimize required hacks? |
It depends, sometimes games simply require hacks to function where others needs unimplemented functions that land in upstream. Having something much closer to upstream means potentially getting these fixes much faster. |
Have the critical CX patches been push upstream? What do we loose by leaving the CX fork? |
As the relevant changes are marked “hacks” it might be difficult to get upstreamed.
These would be in addition to WineskinCX. There’s always going to be additional hacks that live in CX that can’t be upstreamed. |
Is there a list of these significant hack? It's pretty hard to know the impact of this without knowing what they are. Are you considering providing the upstream Engine as an option alongside the WineskinCX fork, or just a swap out? |
There’s quite a lot of hacks and some are not noted.
I’d still be providing WineskinCX builds. Let’s say a game doesn’t work in CX23.5.0 but there’s a fix in upstream wine, it may be possible to simply play the game using for example wine-8.17. Currently I end-up needing to back-port upstream commits to make things work, having upstream package available might help alleviate the need to do this. |
sounds great! |
Is bypassing anticheat considered a hack that is not able to go upstream? |
Yes, I can justify Rosetta2 related hacks as they don’t do anything other than get wine working. Bypassing anti-cheat on the other hand I couldn’t justify to upstream. |
This would be a great option. I was going to ask if it were possible to run those! |
Just curious, before upstream wow64 is in a good shape, how can winecx support 32bit PE on a 64bit-only macos? Do they build their own 32bit-to-64bit translation layer or so? |
You’d need to do three builds and install them into place sequentially.
Yes they’d created there own 32on64 system with the help of a custom version of llvm/clang-8 that could generate 32>64 thunks, this was used for CX19 > CX22. Upstream has hand generated thunks so there’s no requirement for a custom version of llvm/clang-8 anymore. |
May I know how are your engines build currently and how is gptk included in them? Is gptk compiled already and just added on as libs to a wine build? |
There plenty of online guides for building wine based of steps I’ve provided, this includes Apples gptk brew formula that’s based on one I use to provide.
gptk is two components, wine & d3dmetal, my custom packages mention D3DMetal on there name if it’s included. The new gptk engine (only for comparison sake) is complete game-porting-toolkit + d3dmetal pre included just not marked.
See my above comment. |
Thank you! |
Please could you upload more recent winehq releases? Maybe 9.0-rc? |
I won’t consider providing these directly in Winery until after wine-9.0 releases. You could always repack the wine packages I’m providing. |
That’s upstream wine running Steam on my m1 mini. Upstream Engines would contain minimal hacks (mostly Rosetta2 specific)
The text was updated successfully, but these errors were encountered: