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.
Some you may have missed, popular articles from the last month:
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
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
8 Likes, Who?
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 ?
And is me or that gitlab is new ? For how long have I missed this being around ?
3 Likes, Who?
3 Likes, Who?
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.
7 Likes, Who?
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.
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.
4 Likes, Who?
I wonder if Proton 9 won't have 32 bit libraries anymore thus reducing the size
2 Likes, Who?
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.
10 Likes, Who?
How do we enable Wayland driver in Wine and in Proton (when based on Wine 9)?
0 Likes
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"
5 Likes, Who?
See more from me