Should I use Wine, Wine-Proton or Wine-Proton-GE ?

Is the path lib/wine/x86_64-unix/ws2_32.so not enough of a clue?
Just not sure "32" in /usr/local/lib/wine/x86_64-unix/ws2_32.so really means "32bit compat version" or version32 (or something like 3.2, and more, meaning ws 2.32 or not). Because if I'm forced to design the directory structure for both 64bit and 32bit, and if wine/x86_64-unix for 64bit is forced, I'll create wine/i386-unix for 32bit to sanely divide them not to be confused.
 
Eventually it is a dumb question, but I am still curious.
Assuming I am on an AMD64 version of FreeBSD.
If I am using wine regardless the executable (32-bit, 64-bit) I want to execute, wine looks up the /usr/lib32 for shared libs, right ?
If I remember correctly, currently only base, system related libraries are there. No xorg/wayland/pulseaudio etc things here. Posts above explained nicely where Wine is looking for 32-bit libraries.

But wine also provides 32-bit libraries for some 64-bit applications, right ?
Some time there was wine-32, and wine-64, I assume.
But wine-32 got removed already from fresh ports ?
And now you have "wine" which calls either wine-64 or wine-32, I think.
On linux I always used "wine" to execute 32-bit, and 64-bit executables.
On FreeBSD, if I build/install wine, I get both 64-, and 32-bit shared libraries ?
So, I also get wine-64, and wine-32 which both can be called through wine ?
wine on FreeBSD is a script to run 32-bit version of wine. But, i think, if you start 64-bit program with it, it will switch to 64-bit version of wine.
When you build wine by yourself, you will need to build it twice: once for 64-bit version and once for 32-bit. With all required libraries for them. Same with installation.
The point of wine-proton is not performance and not compatibility, the port was added in support of linux-steam-utils and that's how it's supposed to be used. (The Linux Steam client is unable to work with vanilla Wine owing to the way the integration bits are implemented, that's all there is to it.)
Yet, it still beats normal/development version of wine on FreeBSD in case of performance and compatibility. Mostly due to use PulseAudio instead of Alsa/OSS plus patches. ;)

"mutiarch" is the name of Debian's brain-dead multilib implementation, that term has no relevance to Wine.
Yes, it is called WoW64 (Windows on Windows 64). ;) If I remember correctly, I mistakenly got it from wine compilation flags, where you can enable wine even on arm.

WoW64 is something different than multilib/multiarch. It allows to run 32-bit Windows programs by using 64-bit system libraries. Perhaps could even allow to run x86 executables on arm. It isn't used now on FreeBSD as the full implementation in wine is quite new. But I think, we will need to enable it for FreeBSD 15.
 
WoW64 is something different than multilib/multiarch. It allows to run 32-bit Windows programs by using 64-bit system libraries. Perhaps could even allow to run x86 executables on arm. It isn't used now on FreeBSD as the full implementation in wine is quite new. But I think, we will need to enable it for FreeBSD 15.
I believe WoW64 was a feature added starting form wine 9.0 ?
I am not really sure whether it works well or not, because my last wine version was 7.x, and I am somehow interested in trying that out.
Regarding Wine-Proton vs. Wine, I think DXVK has fewer issues with Wine-Proton.
If Wine-Proton performs better than regular wine, I think that there are more patches than just the steam-utils compatibility ones.
 
I have osu! and both Unreal Tournament 99 and 2004 running today no problem 14.2-R with wine-devel and 32-bit prefixes. Mainly everything I play runs easy on Wine though and most things have native OpenGL or Vulkan.

Dota 2 with quick testing with DXVK (DX11) and native Vulkan Dec 2024 had kind-of low FPS on FreeBSD when ran through Wine, but I'm thinking there's something odd about Dota 2 running in Wine that might have been lowering performance overall (I've only ever ran it native Windows or Linux and I'm surprised it worked at all in Wine :p). It might benefit from Esync which iirc requires Staging/patches (above devel is plain Wine, no Staging patch set).

Edit: Dota 2 right now with native Vulkan had 74 FPS vsync early-match (walk from base to mid) on FreeBSD through Wine; way better than last time! :D (rough notes)

Screenshot_2025-03-31_11-53-33.png
 
I believe WoW64 was a feature added starting form wine 9.0 ?
I am not really sure whether it works well or not, because my last wine version was 7.x, and I am somehow interested in trying that out.
If I remember correctly, yes, and was "a bit" buggy, so even wine developers discouraged to use it on Linux. But I think it should works a lot better with wine 10.0. I will check it when wine-proton 10.0 arrive. ;)
Regarding Wine-Proton vs. Wine, I think DXVK has fewer issues with Wine-Proton.
If Wine-Proton performs better than regular wine, I think that there are more patches than just the steam-utils compatibility ones.
Well, wine from Valve (wine-proton) has several layers of patches. It contains some patches from wine-staging plus additional fixes made by Valve. And yes, DXVK should work better with wine-proton too. In my opinion, these days it is always better to use wine from Valve (either Linux or FreeBSD) than the base version.
 
If I remember correctly, yes, and was "a bit" buggy, so even wine developers discouraged to use it on Linux. But I think it should works a lot better with wine 10.0. I will check it when wine-proton 10.0 arrive. ;)

Well, wine from Valve (wine-proton) has several layers of patches. It contains some patches from wine-staging plus additional fixes made by Valve. And yes, DXVK should work better with wine-proton too. In my opinion, these days it is always better to use wine from Valve (either Linux or FreeBSD) than the base version.
Do you know when wine-proton 10.0 will be released ? :)
Wine, and wine-devel are already at version 10 in ports.
 
Do you know when wine-proton 10.0 will be released ? :)
That knows only Valve. :p We usually wait on a stable release of it and then a couple of people is trying to port it to FreeBSD. There is no hard date like 2 weeks after official release, etc. It depends on many factors, from amount of work needed to make it work on FreeBSD to amount of time needed to add the new version to the ports tree.
 
I thought Valve provides its own FreeBSD version of wine, but I didn't know it was ported by FreeBSD users...
So, I wonder if proton patches are already ported over why don't they include proton-ge patches which tend to allow a greater game compatibility ?
As I understand it proton-ge patches are proton + glorious eggrolls patches, right ? :D
The next major proton version should also be able to get Final Fantasy 16 working. (glorious eggrolls version already got it working).
Interesting fact is, I never saw anybody trying out wine-proton on FreeBSD with a Nvidia GPU and showing the results.
It either was an iGPU or one from AMD...
 
I thought Valve provides its own FreeBSD version of wine, but I didn't know it was ported by FreeBSD users...
Unfortunately, Valve provides wine-proton only for Linux. Sometimes with patches which break compatibility with FreeBSD.
So, I wonder if proton patches are already ported over why don't they include proton-ge patches which tend to allow a greater game compatibility ?
Perhaps no one has been interested in doing this yet. Plus it means a lot of more work, these patches also created with Linux in mind and can cause issues on FreeBSD.
As I understand it proton-ge patches are proton + glorious eggrolls patches, right ? :D
Correct. :)
The next major proton version should also be able to get Final Fantasy 16 working. (glorious eggrolls version already got it working).
Interesting fact is, I never saw anybody trying out wine-proton on FreeBSD with a Nvidia GPU and showing the results.
It either was an iGPU or one from AMD...
I'm running it all time. Previously on "a bit" older hardware, now with "a bit" newer. Just usually I'm running older games, so, not too much to show. ;) I wrote a post some time ago, about some configuration's suggestions for FreeBSD, Nvidia and games: https://www.laeran.pl.eu.org/blog/articles/playing-with-beastie
 
thindil
I tried out installing wine-proton with freesbie.sh install wine-proton-9.0.3, but I got the following erros:

-> pkg: Setting ABI requires setting OSVERSION, guessing the OSVERSION as: 1400000
I am running freebsd 14.2-RELEASE-p2, overriding the OSVERSION to 1402000 did not help.

-> pkg: wrong architecture: FreeBSD:14:amd64 instead of FreeBSD:14:i386
-> pkg: repository amd64-release contains packages with wrong ABI: FreeBSD:14:amd64
I guess, I need to setup another poudriere jail for the i386 architecture, right ?
The same what I basically did for 64-bit ports.
 
-> pkg: Setting ABI requires setting OSVERSION, guessing the OSVERSION as: 1400000
I am running freebsd 14.2-RELEASE-p2, overriding the OSVERSION to 1402000 did not help.
As you can see the output you posted, ABI string used by pkg contains only topmost 2 digits of OSVERSION.

This caused problems for kmod ports which strongly affected by remaining digits of OSVERSION and an overhaul is done for kmod ports to contain full OSVERSION in pkg version strings like nvidia-drm-61-kmod-570.133.07.1402504_1. (Last _1 is PORTREVISION).
In this example, topmost 1402 means 14.2, and remaining 504 (500 and above) means it's stable branch (stable/14) with 4 times of bumps.

I guess, I need to setup another poudriere jail for the i386 architecture, right ?
Exactly, if you want i386 version of the pkgs.
 
Hitotsu no kangae ga hirameitanda.
Before I even attempt to create a i386 jail, and build wine i386 and other stuff which won't be needed.
Can I just use the WoW64 mode without building all the 32-bit libraries ?
Wow64 should be supported with Wine 10, and 32-bit applications should also use 64-bit libraries, if I recall correctly.
I read that it can be specified with WINEARCH=wow64 ? ...
 
You, too, a Japanese? 😁
Well, I would say so ;)

Unfortunately, unlikely for now, as seen in the Makefile of emulators/wine.
Souka, are ha zannen desukedo, Makefile no naiou wo mada kakunin suru koto ga dekimasen deshita.
I am also searching for something like a IME in Windows so I can type Hiragana, Katakana, and Kanji. :D

But, I think I got the 32-bit part.
I found a nice thread about how to install the 32-bit part of wine through poudriere.
Maybe that could help.

I looked up the script of thindil, and I wanted to ask how he compiled all that different wine-versions and then got them into a jail like behaviour.
Rather than dealing with version mismatches, I would rather compile all the wine pkgs + their dependencies with poudriere, and then set them up to be used with freesbie :)
 
The error with OSVERSION isn't specific for the script, but for the installation of wine 32-bit. ;) if I remember correctly, you will get it even when you will try to install standard wine package. You can silence it, by setting environment variable: IGNORE_OSVERSION=yes. I think last time I "fixed" it in that way. ;)

About building: in the wine-freesbie repository, you have all tools needed to build all the wine's versions. I'm using for it GitHub Actions, so, if you known Linux containers a bit, you can adapt them to use directly on FreeBSD.

Wine-freesbie uses very similar approach to how wine 32-bit is handled on FreeBSD: it uses FreeBSD feature to have private, unprivileged system's packages repositories. Plus modify locally LD_LIBRARY_PATH and PATH environment variables. That's very simple script. ;)
 
Back
Top