A fresh stable release of Wine — the open-source compatibility layer that makes it possible to run Windows apps and games on Linux and macOS — has been uncorked.
More than 6,000 thousand changes were distilled in Wine 10.0, changes collected, collated, and curated over the past 12 months of Wine 9.x development releases. For those who’ve supped the dev cycle builds, the bulk of what’s new in Wine 10.0 will be familiar.
Wine is not the ‘everyday essential’ it was in years past. Back then, web-based services weren’t as capable, so folks were wedded to specific pieces of Windows software, making Wine an indispensable, if often guilty, aid to day-to-day Linux desktop use.
Today, the software remains widely used in the Linux gaming scene, where it’s integral in Valve’s Proton and CodeWeaver’s CrossOver. Its use for desktop software has lessened, although Linux distributions like Zorin OS do integrate it.
The newest stable release brings a sweet bouquet1 of new features, drivers, and improvements, expands architecture coverage, and fixes bugs — a vintage that proves Wine truly does get better with age.
Wine 10.0: New Features
Strong ARM’d
Wine is not an emulator —literally what the name Wine stands for— but it sure does act like one.
Being able to run 64-bit x86 apps on ARM systems is a big lure as ARM-based PCs become ever-more commonplace, so Wine 10.0 implements an x86 emulation interface in its ARM builds.
This, devs say, “takes advantage of the ARM64EC support to run all of the Wine code as native, with only the application’s x86-64 code requiring emulation.”
The catch is that no emulation library is provided with Wine, but external libraries can be used.
Additionally, Wine 10.0 amps up its ARM coverage by adding ARM64EC architecture support with ARM64 parity, support for Hybrid ARM64X modules (requires experimental LLVM toolchain), and handling C++ exceptions and Run-Time Type Information (RTTI).
Scaling & Vulkan
Wine 10.0 introduces more ‘accurate’ High-DPI support and non-DPI aware windows are now scaled automatically. Users wishing to override that support, be it per-app or globally, can use newly added compatibility flags in the relevant prefixes.
Elsewhere, the X11 backend supports Vulkan child window rendering for apps. This change brings parity with OpenGL, which has supported 3D rendering in child window in early builds.
The Vulkan driver is bumped to v1.4.303 and now supports Vulkan Video extensions.
Desktop Changes
Wine 10.0 features an improved Wayland driver with OpenGL support, proper positioning of pop-up windows, and auto-repeat key support. With the experience deemed decent, Wine 10.0 enables its Wayland driver by by default (though X11 driver is used if available).
There’s also an experimental modesetting emulation mechanism available which, devs says, can “force display mode changes to be fully emulated, instead of actually changing the display settings.”
Sticking with displays, Wine 10.0 offers a new Desktop Control Panel applet. This is used to inspect of modify display configuration, change virtual desktop resolution, or control the above-mentioned emulated display settings.
Want to disable system tray icons and/or shell launchers on desktop? Set NoTrayItemsDisplay=1 and/or NoDesktop=1 values in the following key:
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
Input-wise, Wine 10.0 supports touchscreens in the X11 backend, basic multi-touch support, expands Dvorak keyboard layout support, and adds a new Joystick Control Panel applet to make toggling some advanced settings easier.
A Bluetooth driver has also been implemented, albeit in a formative state with only basic functionality.
Other changes
- GL renderer now requires GLSL 1.20
- Shader stencil export implemented for GL and Vulkan renderers
- Alternative GLSL shader backend using vkd3d-shader
- FFmpeg-based backend alternative to GStreamer (opt-in, experimental)
- Media Foundation multimedia pipelines ‘more accurately implemented’
- DirectMusic supports loading MIDI files
- Unicode 16.0.0
- Command Prompt tool input parser rewritten
- File Comparison tool supports comparing files with default options
- Network sessions are supported in DirectPlay
- Kernel process elevation implemented
- Disk labels retrieved from DBus (where possible)
The release announcement covers the above changes plus many more – go get drunk on the detail!
Getting Wine 10.0
You can download Wine 10.0 source code and build it from hand. By why crush grapes when you can just buy it ready bottled: the official Wine website has details on official binary packages for various Linux distributions.
Wine maintains its own Ubuntu repo for Ubuntu 20.04 LTS and later so it is relatively easy to install the latest Wine release on Ubuntu – new stable builds lag the announcement by a week or two; give devs time to package it!
I can’t remember the last time I had need to use Wine (I am not a developer or a gamer) but I nonetheless appreciate the effort that goes into the software so that it is there, ready if ever I have need.
Whether you’re an infrequent user or sup on its goodness daily, I’m sure you’ll join me in raising a glass to the dedicated devs behind the Wine project on a rich, full-bodied Wine 10.0 stable release.
- C’mon; you didn’t expect anything less than try-hard references on this site, right? ↩︎