Wine 11.5 has arrived with new bug fixes and features for running Windows apps and games on Linux, with a nice sounding compatibility improvement.
The main highlights are:
- C++ support in the build system.
- Bundled ICU libraries.
- Support for Syscall User Dispatch on Linux.
- A number of VBScript compatibility fixes.
- Various bug fixes.
Support for Syscall User Dispatch on Linux is the big one here, which should help both performance and accuracy in certain Windows titles running on Linux. This has been available in the Linux kernel since version 5.11 released back in early 2021. From the Linux kernel documentation:
Compatibility layers like Wine need a way to efficiently emulate system calls of only a part of their process - the part that has the incompatible code - while being able to execute native syscalls without a high performance penalty on the native part of the process. Seccomp falls short on this task, since it has limited support to efficiently filter syscalls based on memory regions, and it doesn’t support removing filters. Therefore a new mechanism is necessary.
Syscall User Dispatch brings the filtering of the syscall dispatcher address back to userspace. The application is in control of a flip switch, indicating the current personality of the process. A multiple-personality application can then flip the switch without invoking the kernel, when crossing the compatibility layer API boundaries, to enable/disable the syscall redirection and execute syscalls directly (disabled) or send them to be emulated in userspace through a SIGSYS.
The goal of this design is to provide very quick compatibility layer boundary crosses, which is achieved by not executing a syscall to change personality every time the compatibility layer executes. Instead, a userspace memory region exposed to the kernel indicates the current personality, and the application simply modifies that variable to configure the mechanism.
There is a relatively high cost associated with handling signals on most architectures, like x86, but at least for Wine, syscalls issued by native Windows code are currently not known to be a performance problem, since they are quite rare, at least for modern gaming applications.
Since this mechanism is designed to capture syscalls issued by non-native applications, it must function on syscalls whose invocation ABI is completely unexpected to Linux. Syscall User Dispatch, therefore doesn’t rely on any of the syscall ABI to make the filtering. It uses only the syscall dispatcher address and the userspace key.
As the ABI of these intercepted syscalls is unknown to Linux, these syscalls are not instrumentable via ptrace or the syscall tracepoints.

Pictured - Detroit: Become Human
Some of the titles that get bugs fixed with this release include: Detroit: Become Human, Red Dead Redemption 2, Arknights: Endfield, Evernote, Stratego, Wallpaper Engine mobile sync and more.
Source: Wine GitLab
😀
A number of VBScript compatibility fixes.I'm interested in this one actually due to a very very old app




How to setup OpenMW for modern Morrowind on Linux / SteamOS and Steam Deck
How to install Hollow Knight: Silksong mods on Linux, SteamOS and Steam Deck