What about gaming on FreeBSD?

wrong abi,

usr/local/share/wine/pkg32.sh install wine mesa-dri
pkg -o ABI_FILE=/usr/lib32/libc.so.7 -o INSTALL_AS_USER=true -o RUN_SCRIPTS=false --rootdir /home/x/.i386-wine-pkg install wine mesa-dri
Updating FreeBSD repository catalogue...
Fetching meta.conf: 100% 179 B 0.2kB/s 00:01
Fetching data.pkg: 100% 10 MiB 5.4MB/s 00:02
Processing entries: 0%
pkg: wrong architecture: FreeBSD:15:amd64 instead of FreeBSD:15:i386
pkg: repository FreeBSD contains packages with wrong ABI: FreeBSD:15:amd64
 
I saw some project called "steam bottler" which sticks steam in a jail. This sounds a lot better for privacy because at least steam would be running in jail so there'd be some kind of security separation.
Did you infer all of this from the name? As much as I dislike that script, there never were such claims.

I copied the .i386-wine directory I had installed in a 14.3 jail where I did get a game working in WINE, so it still should have run.
So you copied i386 wine or wine-devel setup and expected it to work with amd64 wine-proton. You do you.
 
wrong abi,

usr/local/share/wine/pkg32.sh install wine mesa-dri
pkg -o ABI_FILE=/usr/lib32/libc.so.7 -o INSTALL_AS_USER=true -o RUN_SCRIPTS=false --rootdir /home/x/.i386-wine-pkg install wine mesa-dri
Updating FreeBSD repository catalogue...
Fetching meta.conf: 100% 179 B 0.2kB/s 00:01
Fetching data.pkg: 100% 10 MiB 5.4MB/s 00:02
Processing entries: 0%
pkg: wrong architecture: FreeBSD:15:amd64 instead of FreeBSD:15:i386
pkg: repository FreeBSD contains packages with wrong ABI: FreeBSD:15:amd64
The workaround fix was only merged for wine-devel. So you could install wine-devel.
Then run /usr/local/share/wine/pkg32.sh --old install wine mesa-dri
Then install wine back.
 
Guild Wars 2: A popular MMORPG that is reported to run well on FreeBSD using Wine and DXVK (DirectX-to-Vulkan translation).
How would I go about getting DXVK compiled and working with WINE on FreeBSD?
On Linux it's installed with winetricks. On FreeBSD, I'm not so sure.
 
Portal 2 run with linuxulator, with one of the compat option.
For Skyrim, you need to have the ncpu patch from either https://gitlab.winehq.org/wine/wine/-/merge_requests/7339 or https://gitlab.winehq.org/wine/wine/-/merge_requests/5213 .
If you can run the games outside of steam, then using wine-devel should work without patching since the related patched got merged since a while.
It appears the ncpu patch made it in early October 2025 so it's in there from 10.17 onwards. (Both patches)
 
How would I go about getting DXVK compiled and working with WINE on FreeBSD?
On Linux it's installed with winetricks. On FreeBSD, I'm not so sure.
DXVK has pre-compiled DLLs; they drop-in any OS's Wine prefix and Windows.

I'm used to doing it the hard way :p

With the latest tar.gz in Downloads folder (from Releases), I do this for a 32-bit DX9 game in new WoW64:
Code:
rm -Rf '/tmp/dxvk-'* && tar -xvzf ~/'Downloads/dxvk-'*'.tar.gz' -C '/tmp' && mv -fv '/tmp/dxvk-'*'/x32/d3d9.dll' ~/'.wine/World of Warcraft 3.3.5/drive_c/windows/syswow64' && rm -Rf '/tmp/dxvk-'*

With DLL override:
Code:
WINEPREFIX=~/'.wine/World of Warcraft 3.3.5' wine REG ADD 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v 'd3d9' /t 'REG_SZ' /d 'native' /f

Or latest master zip for a 64-bit DX11 game (DX10+ needs DXGI too):
Code:
rm -Rf '/tmp/dxvk-master' && unzip ~/'Downloads/dxvk-master-'*'.zip' -d '/tmp/dxvk-master' && mv -fv '/tmp/dxvk-master/x64/d3d11.dll' '/tmp/dxvk-master/x64/dxgi.dll' ~/'.wine/Guild Wars 2/drive_c/windows/system32'

With DLL overrides (+ DXGI)
Code:
WINEPREFIX=~/'.wine/Guild Wars 2' wine REG ADD 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v 'd3d11' /t 'REG_SZ' /d 'native' /f && WINEPREFIX=~/'.wine/Guild Wars 2' wine REG ADD 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v 'dxgi' /t 'REG_SZ' /d 'native' /f

That format works various Linux and FreeBSD as-is!
 
Here's a breakdown of what I'm running:
  • 8th gen. Intel Laptop with Intel(R) UHD Graphics 620 (KBL GT2)
  • Host running FreeBSD 15.0-RELEASE
    • Running my X session on host and setting: xhost +local: to allow the jail
    • devfs.rules with various paths unhide'd: mixer*, dsp*, dri, dri/*, drm, drm/*, pci
  • Gaming jail running FreeBSD 14.3-RELEASE-p6
    • wine-devel 11.0.r4
    • wine prefix is 'amd64' so uses the libs from .i386-wine
    • Installed mesa-dri and vulkan-loaders
    • winetricks -q corefonts dxvk
    • winetricks -q renderer=vulkan
I find my graphics are weird and jumpy and the animations are not smooth.
If I go back to the wine 10.15 jail with 'gl' rendering (not dxvk), the game works fine.

If I try vulkan with wine-devel 10.15, I get:

warn: DXVK: No adapters found. Please check your device filter settings
warn: and Vulkan drivers. A Vulkan 1.3 capabie setup is required.

I have vulkan-loader and vulkan-tools both v1.4.327 installed and vkcube runs perfectly fine in the jail.
So I'm kinda stumped here. My device should support Vulkan but 10.15 doesn't work right?
 
I find my graphics are weird and jumpy and the animations are not smooth.
I noticed that in Guild Wars 2 with Vsync enabled, but there was also something with Intel DDX vs modesetting DDX (iirc there was no glitching intel vsync disabled, vs rare glitching modesetting vsync disabled, or a lot of glitching vsync eabled both). It could have been different Wine, but I was thinking it was DRM related (something from 14.3 -> 15.0?)

For GW2 camera rotation is smoother with vsync enabled, but I could play fine with a 60 FPS cap in-game instead.

Edit: I have UHD 630 (could be Intel-specific with 620)
 
Last edited:
I tried this, had some problems initially.
Ended up upgrading it to use Latest, pkg upgrade'd to wine-devel 11.0.r4 and had to install curl to get winetricks -q dxvk working
Ah indeed, the /usr/local/bin/winetricks script constructs a wrong URL to fetch the latest dxvk in some cases.

Some context:
winetricks probes for the existence of the following programs to use for downloading a requested package, in this order:
  1. aria2c(1) (www/aria2)
  2. wget(1) (ftp/wget)
  3. curl(1) (ftp/curl)
  4. fetch(1) (base system)
For example, if you have www/aria2 installed, then winetricks will use aria2c(1) for fetching. If none of the external programs are installed, then it will use fetch(1). You can force the usage of a particular program with the WINETRICKS_DOWNLOADER environment variable:
Code:
$ WINETRICKS_DOWNLOADER=curl winetricks -q dxvk

Now, fetch(1) fails to download the package, the URL is broken:
Code:
...snip...

Downloading https://github.com/doitsujin/dxvk/releases/download/vhttps://api.github.com/repos/doitsujin/dxvk/releases/243551604/dxvk-https://api.github.com/repos/doitsujin/dxvk/releases/243551604.tar.gz to /home/user/.cache/winetricks/dxvk
fetch: https://github.com/doitsujin/dxvk/releases/download/vhttps://api.github.com/repos/doitsujin/dxvk/releases/243551604/dxvk-https://api.github.com/repos/doitsujin/dxvk/releases/243551604.tar.gz: Not Found

...snip...
aria2c(1) has the same error, the constructed URL is broken. The other two download methods curl(1) and wget(1) don't have this problem. I haven't (yet) looked deeper where in the script the URL constructions goes off the cliff for the aria2c(1) and fetch(1) cases.

Specifying an explicit dxvk version works though, so this is a workaround when using aria2c(1) or fetch(1):
Code:
$ winetricks -q dxvk2053
 
This post is pretty much a plea for help! Although I have experience with FreeBSD, I have next to none with Linux, or Wine, or how Steam works 'under the hood'.
Playing Squad (ProtonDB) is one of my last reasons for having a Win10 installation. I know it runs under Wine on Linux because I've played with people doing exactly that!

I thought I'd start with a fresh install of FreeBSD 15.0-RELEASE but frankly I haven't even managed to get Steam itself working.

I'm also confused by what seems to be a lot of conflicting info:
  • "Steam bottler" versus "linuxulator-steam-utils"
  • wine-devel versus wine-proton versus wine-???
  • c7 or rl9 linux compatibility layer?
  • do I need to run xorg OR Wayland?
  • do I need any of the i386 / WOW64 aspects if the game is 64bit? surely Steam itself is also 64bit? where does the 32bit aspect come into play?
I'm leaning towards "linuxulator-steam-utils" but even though I've applied the patch seem to be stuck in port-building hell with gstreamer, not to mention wondering why I need 1GB of texlive-texmf?
I suspect I've made a fundamental mistake somewhere and I should reinstall FreeBSD from scratch and start again. (ZFS snapshots next time!)

So I guess I have a question:

Does anyone have a "install from bare-metal" how-to?

Or I could start a new thread and update the 1st post as I go along...
 
Back
Top