The Wine team announced that the stable release Wine 6.0 is now available. It is a Windows compatibility layer that allows apps, tools, and games built for Microsoft Windows to run on other operating systems, including Linux, macOS, Android, etc. The latest release represents a year of development effort and over 8,300 individual changes. The team also announced that the release is dedicated to the memory of Ken Thomases, the mastermind behind the macOS support in Wine, who passed away just before Christmas at the age of 51.
Some of the new features in Wine 6.0
PE modules
- The core DLLs, including NTDLL, KERNEL32, GDI32, USER32, etc. are built-in PE format. This should help a number of copy protection schemes that check that the DLL files on disk match the in-memory contents.
- There is a new mechanism to associate a Unix library with a PE module, to make it possible to call Unix libraries from PE for the functions that can’t be handled with Win32 APIs. These libraries are found by replacing the PE module file extension with .so, for instance, ntdll.dll -> ntdll.so. They have to be located next to the PE file on disk.
- Winelib modules no longer link against libwine.so, or require it at run-time. This is a backward-incompatible change, meaning that modules built with Wine 6.0 won’t run on older Wine versions.
Direct3D
- An experimental Vulkan renderer for WineD3D is implemented. This requires the vkd3d-shader library in order to translate Direct3D shaders to SPIR-V shaders. In this release, shader support in the Vulkan renderer is limited to shader model 4 and 5 shaders. In practice, that limits its usefulness to Direct3D 10 and 11
applications. The Vulkan renderer can be enabled by setting the Direct3D “renderer” registry setting to “vulkan”. - The following Direct3D 11 features are implemented:
- Per render-target (“independent”) blend states.
- Dual-source blending.
- Multi-sample anti-aliasing sample masks.
- Several more capability queries.
- Support for Direct3D 9 alpha-to-coverage multi-sampling is implemented.
Graphics
- Drawing arcs, ellipses and rounded rectangles using the Direct2D API is implemented.
- The standard sRGB color profile is installed into the prefix, for applications that expect to load it directly.
- The Null display driver can be used as a proper display driver, for cases when a user interface is not needed.
Kernel
- Windows version compatibility mode is implemented, to only report the newest Windows versions to applications that have declared that they support them.
- INI file mappings are implemented, to redirect .ini file entries to registry keys.
- Many more NT kernel objects and functions are implemented, to support anti-cheat systems that load kernel drivers.
C Runtime
- The C runtime import libraries provide the necessary runtime support so that PE modules no longer depend on the MinGW runtime.
- The Wine modules are all built against the new UCRT runtime.
- Winegcc uses the new UCRT runtime by default unless an older C runtime library is explicitly imported.
Internet and networking
- The Gecko engine is updated to version 2.47.2.
- The WebSocket API is implemented.
- JScript and VBScript report the correct location for errors in scripts.