WINE 9.0 improves ability to run 32-bit Windows apps on 64-bit-only xNix

Plus fresh release brings native Wayland support on Linux

WINE 9.0 brings the benefits of better WoW64 support to 64-bit x86 – and Arm – kit, plus native Wayland support on Linux.

WINE releases have become pleasantly regular in the last half-a-dozen years. WINE 9.0 was released on Tuesday, almost a year after we reported on WINE 8.0 and two years after we reported on WINE 7.0.

The latest version consolidates some of the changes that we wrote about in those previous installments. Internally, it "thunks" 32-bit Windows API calls to 64-bit ones before it translates them to Unix API calls, which the developers call WoW64 after the Windows feature of the same name. As the release announcement puts it:

This is a major milestone that marks the completion of the multi-year re-architecturing work to convert modules to PE format and introduce a proper boundary between the Windows and Unix worlds.

("PE format" here refers to Microsoft's Portable Executable format, which we explained in depth a couple of years back.)

The announcement continues:

This means that it is possible to run 32-bit Windows applications on a purely 64-bit Unix installation. This is called the new WoW64 mode, as opposed to the old WoW64 mode where 32-bit applications run inside a 32-bit Unix process.

No potential for confusion there, then.

For now, although most major Linux distros only exist in 64-bit editions, all still include support for 32-bit libraries and programs… but all the big players are looking at dropping that. Canonical considered dropping 32-bit app support from Ubuntu in 2019, but backtracked. Fedora is still evaluating it. It is very likely that Debian's next release, version 13 "Trixie" will have no x86-32 edition, and FreeBSD 15 won't either.

But WINE doesn't just run on Linux and FreeBSD; it also works on Apple macOS. The last release of macOS 10, 10.15 "Catalina" dropped 32-bit support back in 2019, and none of the five versions since support x86-32 code.

Being able to run 32-bit Windows binaries on macOS 11 through 14 is quite a boon as it is, but there's more:

The completion of the PE/Unix separation means that it's possible to run existing Windows binaries on ARM64.

This doesn't mean that WINE translates x86 code to Arm:

No emulation library is provided with Wine at this point, but an external library that exports the interface can be used.

MacOS on Arm64 offers that as standard in the form of Rosetta 2 translator, which can even be called from within Linux VMs. Folks running Linux on Arm64 will have to provide their own, but the Wine developers point at FEX-Emu for this.

Meanwhile, in Linux land, there's also support for the ever-growing Wayland display protocol:

There is an experimental Wayland graphics driver. It's still a work in progress, but already implements many features, such as basic window management, multiple monitors, high-DPI scaling, relative motion events, and Vulkan support.

Much like 32-bit binary support, most Wayland-based distros still support X.11 apps via XWayland, but a direct Wayland rendering path helps performance. That matters to gamers, streamers, and those working with video, and thanks to Valve's hard work on SteamOS, the performance of Windows apps on Linux is improving rapidly.

There are lots of other changes in this release. Also improved are Postscript handling, 3D graphics, audio and video handling, desktop integration, support for MSHTML rendering via Gecko, Mon and .NET support, and more.

However, you should note that both the 64-bit-only and Wayland support, two of the key features, remain optional: you can use them in the stable release version, but you will have to explicitly enable them. The stable releases of WINE are cautious things, and mostly, its default settings avoid enabling things which might conceivably break anything for anyone. Wine-Stable is the version you will generally find in your Linux distro's repositories.

If you want fancy features that are still under active development, there is a separate branch, called Wine-Staging. If even that isn't fresh enough for you, there is also the -development branch, which gets a new release about every two weeks, as the WineHQ FAQ describes.

As ever, if you want to know if a particular application or game will work, check the Wine Application Database first. There are also helper apps that make it easier to get stuff running, such as the Winetricks helper script which can automatically install needed Windows dependencies for specific apps.

If all this sounds like too much work, and you just want something to install and work – or you want to financially support WINE development – then as it has for decades, CodeWeavers' CrossOver makes it much easier… on Linux, on ChromeOS, and on Macs as well. ®

More about


Send us news

Other stories you might like