Stable release of Wine 10.0

After a year of development and 29 experimental versions, a stable release of the open implementation of Win32 API — Wine 10.0 — has been released, which has absorbed more than 6000 changes. Key achievements in the new version include full support for the ARM64EC architecture, scaling on high-density pixel screens, enabling the Wayland driver by default, implementing panels for customizing the screen and joystick, an alternative multimedia backend based on FFmpeg, a Bluetooth driver, support for Vulkan 1.4, and the ability to emulate switching video modes.

5372 programs have been confirmed to work properly in Wine Windows (5336 a year ago, 5266 two years ago, 5156 three years ago), another 4435 programs (4397 a year ago, 4370 two years ago, 4312 three years ago) work fine with additional settings and external DLLs. 4020 programs (3943 a year ago, 3888 two years ago, 3813 three years ago) have minor issues that don't interfere with the basic functionality of the applications.

Key innovations in Wine 10.0:

  • ARM64
    • Full support for the ARM64EC (ARM64 Emulation Compatible) architecture has been provided, with Wine now providing support for it at parity with the ARM64 architecture. The ARM64EC architecture is designed to simplify porting applications originally written for x64_86 systems to ARM64 systems, and allows individual modules with x64_86 code to be executed in the ARM64 environment using an emulator.
    • Full support for the ARM64X PE file format has been implemented, which allows combining code for the ARM64EC and ARM64 architectures in a single executable file. To build Wine in the ARM64X format, you need to install LLVM from Git (the required functionality will be included in the LLVM 20 release) and specify the option "--enable-archs=arm64ec,aarch64" when running the "configure" script.
    • An interface for emulating 64-bit x86 systems has been implemented. When using ARM64EC, Wine itself runs as is, and emulation is used only for x86-64 application code. The library with the emulator is not yet included in the main Wine package, but to run x86-64 code in an ARM64 environment, you can use the external FEX emulator, built with ARM64EC support.
    • ARM64 support requires the system to use 4KB memory pages as required by the ABI. Windows (running in environments with kernels Linux, using 16K or 64K memory pages is not yet supported).
  • Graphical subsystem
    • More accurate scaling on high-DPI screens has been implemented. Support for the DPI Awareness mode has been provided to organize the display of applications on high-DPI screens, taking into account whether the application supports adaptation to DPI changes or not (applications that do not take DPI into account are scaled automatically). Options have been added to override High-DPI support for individual applications or Wine prefixes.
    • The driver for the Vulkan graphics API has been updated to support the Vulkan 1.4 specification (Wine 9.0 supported Vulkan 1.3.272). Support for Vulkan extensions for video encoding and decoding has been added.
    • When using the X11 backend, the ability to render Vulkan child windows has been implemented for applications that use such windows to display 3D content (previously, this ability was only available for OpenGL).
    • The GdiPlus library now supports the Font Linking mechanism, which allows using multiple fonts when displaying text if there are no fonts that individually cover all the characters found in the text.
  • Wayland
    • The default configuration includes the winewayland.drv driver, which allows Wine to run in Wayland-based environments without using XWayland or X11 components. Wine launches default applications directly on Wayland only if XWayland is unavailable; otherwise, XWayland is the preferred launcher. To force Wayland, you can use the DISPLAY environment variable or add a registry key by creating a file.reg file: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Wine\Drivers] "Graphics" = "wayland" and apply it with the command: $ WINEPREFIX = /path/to/prefix wine regedit /path/to/file.reg
    • OpenGL and pixel buffer (pBuffer) support has been added to the winewayland.drv driver.
    • Fixed issues with popup window positioning in Wayland-based environments.
    • When using Wayland, support for auto-repeat of keystrokes when holding down keys is implemented.
  • Desktop integration
    • An experimental "modesetting" emulation mechanism has been added, allowing emulation of switching video modes without actually changing the screen settings. The appearance of changing the screen resolution without switching the video mode is created by expanding and scaling windows.
    • Added a new Desktop Control Panel applet (desk.cpl) with the implementation of the interface for managing display settings (for example, you can change the virtual resolution of the desktop or configure the emulated display parameters).
    • Added the ability to reset screen settings to default values ​​in case of inability to restore the state after a process crash.
    • Added support for disabling the display of icons in the system tray (in "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" should specify "NoTrayItemsDisplay=1").
    • Added support for disabling shells (Shell launcher) in desktop mode (in "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" should specify "NoDesktop=1").
  • Direct3D
    • OpenGL rendering now requires support for GLSL 1.20, as well as the EXT_framebuffer_object and ARB_texture_non_power_of_two extensions. Support for the old ARB shader backend and the OffscreenRenderingMode setting has been dropped.
    • For Direct3D 9 and earlier, a fixed-function graphics pipeline has been added (older Direct3Ds only provided predefined graphics operations that could not be modified) implemented using the HLSL shader language, allowing fixed-function emulation when rendering via the Vulkan or OpenGL APIs.
    • Vulkan rendering uses Vulkan extensions to dynamically change the state of the graphics pipeline, reducing stuttering in games.
    • Added alternative glsl-vkd3d backend for GLSL shaders, using vkd3d-shader.
    • Provided initial support for compiling Direct3D effects using vkd3d-shader.
    • The D3DX9 library implements the ability to generate MIP textures (MipMap) when loading volumetric textures. Support for 64bpp RGBA and 48bpp RGB color representation formats in PNG images, as well as X8L8V8U8, A2W10V10U10, A8P8, V16U16, and Q16W16V16U16 formats has been added.
  • Sound and video
    • As an alternative to the GStreamer-based backend, a new multimedia backend has been implemented, based on the use of FFmpeg and suitable for ensuring the operation of the Media Foundation framework. To enable the alternative backend, specify "DisableGstByteStreamHandler=1" in the registry section "HKCU\Software\Wine\MediaFoundation".
    • Improved implementation of the Media Foundation API to better accommodate applications that rely on demuxing and decoding components.
    • The DirectMusic API has added support for loading MIDI files.
  • Input Devices
    • Added initial version of Bluetooth driver.
    • Added Joystick Control Panel applet (joy.cpl) with implementation of settings for the joystick.
    • Improvements have been made to pointer devices (touchpads, mice) using the HID (Human Interface Device) protocol. The mouhid.sys driver for HID devices has been added. Correct parsing of composite input devices has been implemented, and information about them is now transmitted to Windows-applications, as separate devices.
    • For the X11 backend, support for touch screens has been added and the ability to use multi-touch mode has been implemented through processing WM_POINTER* messages (WM_POINTERENTER, WM_POINTERLEAVE, etc.).
    • Implemented placement of some internal structures of the user32 library in shared memory, which increased performance and reduced the load on Wine Server.
    • winex11 adds support for handling XInput2 events on a per-window basis.
    • Implemented correct support for keyboards with Dvorak layout.
  • Kernel (kernel interfaces Windows)
    • Added support for process privilege escalation (a process initially launched under a standard user can be granted administrator privileges). When creating server processes (msi action server), as well as processes calling the RtlCreateUserProcess() and CreateProcessInternal() functions, a limited administrator token is used by default.
    • When retrieving disk label information, system services are now accessed via DBus where possible, rather than attempting direct access to the device.
    • The Mailslots one-way interprocess communication (IPC) mechanism is now implemented directly in the Wine server, allowing for full semantic support Windows.
    • Implemented waiting for serial port events in asynchronous mode.
    • Added full support for XSTATE processor extensions in thread contexts, enabling new vector extensions such as AVX-512.
  • Built-in applications
    • The input processing engine used in the cmd.exe command interpreter has been rewritten. Support for the "||" and "&&" operations has been added to cmd.exe.
    • The findstr utility has been updated to support regular expressions and case-insensitive searching.
    • The ability to register ARM32EC modules has been added to the regsvr32 and rundll64 utilities.
    • Added utilities: sort for sorting input data, fc for comparing files and where for searching files.
    • The wmic application has an interactive mode of operation.
    • Explorer has added optional support for the start menu and toolbar. Enabled launch of explorer.exe with reduced access rights.
  • Development Tools
    • Added "-marm64x" option to winebuild to generate ARM64X hybrid libraries.
    • Added "-marm64x" option to winegcc to enable building for ARM64X.
    • Files generated using the Interface Definition Language (IDL) use components that fully support execution in interpreted mode.
    • The Interface Definition Language (IDL) compiler now supports generating type libraries (TypeLib) in the old format (SLTG).
    • The winedump utility has been updated to support saving minidump table dumps, C++ exception information, and typelib resources.
  • Miscellanea
    • Improved support for the Diffie-Hellman (DH) key exchange protocol. Added the ability to configure and receive DH parameters. Implemented handlers for creating pairs of public and private keys.
    • Support for the use of OAEP (Optimal Asymmetric Encryption Padding) padding in conjunction with the RSA algorithm is provided.
    • The DirectPlay API implements support for network sessions.
    • Improved handling of asynchronous input/output states when working in WoW64 (64-bit) mode Windows-he-Windows), which allows you to run 32-bit Windows-applications on 64-bit Unix systems.
    • Added support for loading ODBC drivers for DBMS compiled for Windows.
    • The ARM platform has full support for RPC/COM, C++ RTTI (Run-Time Type Information) and C++ exceptions.
    • The C runtime implements support for UTF-8 encoding in ANSI functions.
    • The capabilities of the MSHTML engine have been expanded. Support for prototypes and object constructors has been added. A new object binding interface for MSHTML has been added to the JavaScript engine. Built-in MSHTML functions have been converted to valid JavaScript objects. The JavaScript garbage collector has been improved to cover all script execution contexts in a thread. Support for ArrayBuffer and DataView JavaScript objects has been added.
    • The continuous integration system based on Gitlab has been updated to support static analysis using Clang and JUnit test reports.
    • The package includes the Capstone 5.0.3 library, which enables disassembly in the WineDb debugger.
    • The following components have been updated to new versions: Vkd3d 1.14, Faudio 24.10, FluidSynth 2.4.0, LDAP 2.5.18, LCMS2 2.16, LibJpeg 9f, LibMPG123 1.32.9, LibPng 1.6.44, LibTiff 4.7.0, LibXml2 2.12.8, LibXslt 1.1.42 and Zlib 1.3.1.

Source: opennet.ru

Buy reliable hosting for sites with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster