After a year of development and 29 experimental versions a stable release of the open source implementation of the Win32 API is presented – Wine 6.0 , which contains over 8300 changes. Key achievements of the new version include the delivery of basic Wine modules in PE format, a backend based on the Vulkan graphical API for WineD3D, a new implementation of a text console, support for DirectShow and the Media Foundation framework.
In Wine confirmed 5049 (a year ago 4869) programs for Windows work well, 4227 more (a year ago 4136) programs work fine with additional settings and external DLLs. 3703 programs have minor problems that do not interfere with the use of the main functions of the applications.
Key What’s New Wine 6.0:
- Modules in PE format
- Core DLLs including NTDLL, KERNEL32, GDI32, and USER32 have been moved to use the PE (Portable Executable) executable format instead of ELF. The use of PE solves problems with the support of various copy protection schemes that verify the identity of system modules on disk and in memory.
- A new mechanism for attaching Unix libraries to PE modules has been proposed for organizing calls to Unix libraries from PE files when it is necessary to call functions that cannot be processed through the Win32 API. Additional Unix libraries are identified by the presence of a file with the “so” extension and the name of the PE module (for example, ntdll.so for ntdll.dll).
- Discontinued linking Winelib modules with libwine.so and loading libwine.so at runtime. Because of this change, backward compatibility is lost, i.e. modules built for Wine 6.0 will not be able to load in older Wine releases. The libwine library is no longer used in Wine 6.0, but continues to ship for compatibility with modules built for older versions of Wine.
- Support has been implemented for building PE modules with saving debug information in a separate file, which allows to reduce the size of installed files.
- Graphics subsystem
- Added support for drawing arcs, ellipses and rounded rectangles using the Direct2D API.
- The base Wine directory is provided with a default sRGB color profile for applications trying to load it directly.
- Implemented the ability to use the null display driver as a normal graphics driver when the user interface can be dispensed with.
- Added support for DDS (DirectDraw Surface) and JPEG-XR image decoding and GIF encoding in WindowsCodecs.
- The Vulkan driver provides support for the Vulkan Graphics API 1.2.162 specification and provides JSON manifest and registry entries used by the official Vulkan loader.
- Improved GdiPlus implementation, including support for expanding lines, additional shading styles, and new meta post types.