We do often include affiliate links to earn us some pennies. See more here.

It's here! The official release of Wine 9.0 has now been made available, bringing the next-generation of Windows compatibility to Linux for apps and games. This is the tech that forms a major part of Steam Play Proton.

This release has been a year in the making, with a new stable Wine release done once a year with many development releases in between bringing over 7,000 individual changes. There's some truly big stuff in this release too and some of the highlights include:

  • An experimental Wayland graphics driver, not enabled by default yet.
  • Lots of WoW64 work including the completion of converting modules to PE format to "introduce a proper boundary between the Windows and Unix worlds". They say it's now possible to run 32-bit Windows applications on a purely 64-bit Unix installation but this new WoW64 mode is not yet enabled by default.
  • The completion of the PE/Unix separation means that it's possible to run existing Windows binaries on ARM64.
  • The Vulkan driver supports up to version 1.3.272 of the Vulkan spec.
  • Various optimizations have been made to core WineD3D and the Vulkan backend.
  • A number of GdiPlus functions are optimized for better graphics performance.
  • The Windows Media Video (WMV) decoder DirectX Media Object (DMO) is implemented.
  • DirectInput action maps are implemented, improving compatibility with many old games that use this to map controller inputs to in-game actions.
  • URL/URI protocol associations are exported as URL handlers to the Linux desktop.
  • Lots of Internationalization improvements including updates for Unicode and better support for native Windows IME implementations.

The list goes on for a while, that's just some cherry-picked big additions.

As a result of all the changes many more applications and games designed for Windows will now run on Linux (and other platforms where Wine can run).

See the full release notes for all the changes.

Article taken from GamingOnLinux.com.
38 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
9 comments

"They say it's now possible to run 32-bit Windows applications on a purely 64-bit Unix installation but this new WoW64"
That means we soon no more need to install 32 bits libraries? How they do that?


"The completion of the PE/Unix separation means that it's possible to run existing Windows binaries on ARM64."
Such an exiting changelog!


Last edited by legluondunet on 16 January 2024 at 11:49 pm UTC
a0kami Jan 17
That's amazing, so excited for the wayland driver!
And is me or that gitlab is new ? For how long have I missed this being around ?
Linux_Rocks Jan 17
ljrk Jan 17
Quoting: legluondunet"They say it's now possible to run 32-bit Windows applications on a purely 64-bit Unix installation but this new WoW64"
That means we soon no more need to install 32 bits libraries? How they do that?

IIRC, they transition from 32-bit Win32 to the 64-bit Windows API which only then calls into the Linux or UNIX libraries below. If before you had (simplified) OpenFile_Win32 -> OpenFile_NT32 -> fopen_32 you now have OpenFile_Win32 -> OpenFile_NT32_Shim -> OpenFile_NT64 -> fopen_64. This is just like it's done on Windows.

The requirement for 32-bit system libraries was due to to OpenFile_Win32 expecting certain x86 properties that fopen_64 would not obey to, including different calling conventions b/w the Linux 32-bit CC and the SystemV AMD64 ABI (used by Linux 64-bit on x86) and other stuff. Due to OpenFile_NT32 being replaced by OpenFile_NT32_Shim as part of the WoW setup, the shim does a lot of rummaging to put things into the correct registers etc.

On Windows itself this is handled in a similar way, although the real thing is a lot more complicated of course. The trick is called "Heaven's Gate" and core functionality of WoW: https://0xk4n3ki.github.io/posts/Heavens-Gate-Technique/ (this is mostly a post which explains the technique in the context of exploitation and obfuscation).

Note that this also allows you to replace more Wine rewritten libraries with the "original" Windows counterparts as they're now all DLLs and not ELFs.
Oh, my god, YES! I love all these changes. It's ALL that I/we've been waiting for. Obviously, still experimental right now, but I was thinking we'd see them only in 9.x Staging cycle. It looks like the Staging cycle will be concluding development and testing to put it into 10.0 stable. Super looking forward to that.

Jeez, I don't even know what to talk about, because ALL that's on the list is just so monumental and will make things really better for me.
satoridepon Jan 17
I wonder if Proton 9 won't have 32 bit libraries anymore thus reducing the size
fabertawe Jan 17
I've always had the greatest respect for the Wine project. An exceptionally useful project for those of us on Linux, which has been highlighted further with Proton.
How do we enable Wayland driver in Wine and in Proton (when based on Wine 9)?
whizse Jan 17
View PC info
  • Supporter
Quoting: michaldybczakHow do we enable Wayland driver in Wine and in Proton (when based on Wine 9)?
Compile with Wayland enabled (--with-wayland) and then enable the driver in the registry: HKEY_CURRENT_USER\Software\Wine\Drivers\Graphics="wayland,x11"
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register


Or login with...
Sign in with Steam Sign in with Google
Social logins require cookies to stay logged in.