Check out our Monthly Survey Page to see what our users are running.
We do often include affiliate links to earn us some pennies. See more here.

Not an emulator but a compatibility tool that translates Windows calls into language Linux can understand, Wine 6.4 is officially out now as the latest development release.

For newer readers and Linux users here's a refresher - Wine is a compatibility layer built for operating systems like Linux, macOS and BSD. The idea is to allow other platforms to run games and applications only built and supported for Windows. It's also part of what makes up Steam Play Proton. Once a year or so, all the development is bundled into a stable release.

Here's what's new in Wine 6.4:

  • Support for the DTLS protocol.
  • Fontset support in DirectWrite.
  • Dialog for editing Access Control entries.
  • Theming support for a few more common controls.
  • Support for Korean Wansung encoding.

There's also 38 bugs noted as fixed this time around. As usual some being quite old that were fixed a while ago, each release sees the team go over bugs to see what are still actually a problem. Like with this release a bug report from 2007 was finally marked as solved along with issues fixed for: Civilization IV, Soldiers of Anarchy, The Elder Scrolls V: Skyrim SE, Entropia Universe, Banished, Horizon Zero Dawn, Serious Sam 4, The Witcher 3 and more.

Article taken from GamingOnLinux.com.
19 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
The comments on this article are closed.
21 comments
Page: «2/3»
  Go to:

hardpenguin Mar 13, 2021
Quoting: GamingOnLinuxNot an emulator but a compatibility tool
Love you :D <3
v3ntox Mar 13, 2021
tried many games through lutris with new Wine and vulkan and must say it shows very good...even games not before running now works.
ljrk Mar 13, 2021
[quote=Guest]
Quoting: F.Ultra
Quoting: PinguinoA one-sentence summary would be quite hard
Challenge accepted.
Quoting: PinguinoCould anyone give me a one-sentence summary on the difference between emulators and translation layers?
Think of WINE as an interpreter for spoken languages. WINE translates the language between Windows and Linux, while an emulator attempts an exact recreation of hardware with software.

As pointed out earlier, this is actually not really correct or perhaps confusing -- the language on (most) Linux systems is x86, as is on (most) Windows. But, while the language is the same, Windows and Linux have different "higher level concepts", and Wine can sort of work as a dictionary for looking up the Windows "meaning". But the analogy falls apart rather fast.

The point is: An operating system doesn't execute a program, really, it just nudges the CPU to do the actual execution. The OS is just there for outsourcing some tasks that otherwise every program would need to do (much simplified). Programs ask the OS to do these tasks for them, however the interface b/w OS <-> program differs from Windows to Linux.

So, while most parts (in theory) of a Windows and a Linux binary are pretty much the same, they differ when it comes to asking the OS to do tasks like "render picture on screen". In that case, the program can then consult Wine and Wine tells Linux what to do.

Side note: Actually the complete Windows OS API is already such a translation layer. Because the "actual" OS (the Kernel) when using Windows doesn't "speak Windows" (win32) but NT. So while on Windows asking to render a picture looks like:

program -> Win32 API -> NT API

on Linux it looks like:

program -> Wine -> Linux API

So, basically, Wine is a Win32 API implementation (and program loader) for the Linux kernel instead of the NT kernel one.
Shmerl Mar 14, 2021
Quoting: PinguinoCould anyone give me a one-sentence summary on the difference between emulators and translation layers? I've done some searching and I think I got the gist of it (low-level emulators are basically trying to recreate the emulated OS instead of just wrapping individual functions), but I couldn't see much distinction between high-level emulation and a translator.

In narrow sense emulator can mean something that emulates hardware. I.e. imagine something that implements one CPU architecture in software to run on another CPU architecture (example - Qemu).

In a wider sense it means any kind of imitation. So in the first sense Wine is not emulating hardware. But in the second sense Wine is emulating Windows.


Last edited by Shmerl on 14 March 2021 at 2:40 am UTC
Purple Library Guy Mar 14, 2021
Quoting: Shmerl
Quoting: PinguinoCould anyone give me a one-sentence summary on the difference between emulators and translation layers? I've done some searching and I think I got the gist of it (low-level emulators are basically trying to recreate the emulated OS instead of just wrapping individual functions), but I couldn't see much distinction between high-level emulation and a translator.

In narrow sense emulator can mean something that emulates hardware. I.e. imagine something that implements one CPU architecture in software to run on another CPU architecture (example - Qemu).

In a wider sense it means any kind of imitation. So in the first sense Wine is not emulating hardware. But in the second sense Wine is emulating Windows.
Maybe, but I'm pretty sure the people who named Wine would beg to differ on that. I think the position would be something along the lines of, an emulator for Windows would be something that basically reproduced the Windows API-whatever in userspace and had Windows programs run in it, whereas what Wine was doing was just translating the Windows program's requests so Linux would understand them.
CatKiller Mar 14, 2021
View PC info
  • Supporter Plus
If Wine meant "Windows emulator" (which is totally why it's called what it is) then there would be potential trademark heat from 90s Microsoft on top of potential heat from the merits of Wine's functionality. Using the fashionable-at-the-time recursive acronym and actuallying the name by the 90s terminology meant that they got to keep the project name and not use anyone else's trademark.
STiAT Mar 14, 2021
When they talk about vulkan rendering fixes, has this any impact on VKD3D/D9VK or is this their Vulkan implementation they are talking about?
tuubi Mar 14, 2021
View PC info
  • Supporter Plus
Quoting: STiATWhen they talk about vulkan rendering fixes, has this any impact on VKD3D/D9VK or is this their Vulkan implementation they are talking about?
The Wine release notes wouldn't list fixes to third-party software, so yeah, they're talking about WineD3D.
Shmerl Mar 14, 2021
Quoting: Purple Library GuyMaybe, but I'm pretty sure the people who named Wine would beg to differ on that. I think the position would be something along the lines of, an emulator for Windows would be something that basically reproduced the Windows API-whatever in userspace and had Windows programs run in it, whereas what Wine was doing was just translating the Windows program's requests so Linux would understand them.

Or you could apply duck typing here. I.e. if it behaves like Windows, it emulates Windows. How exactly it does it underneath is really not very important for the program for which Wine acts as Windows environment (thus emulating Windows).
Purple Library Guy Mar 15, 2021
[quote=Guest]
Quoting: LeonardK
Quoting: Guest
Quoting: F.Ultra
Quoting: PinguinoA one-sentence summary would be quite hard
Challenge accepted.
Quoting: PinguinoCould anyone give me a one-sentence summary on the difference between emulators and translation layers?
Think of WINE as an interpreter for spoken languages. WINE translates the language between Windows and Linux, while an emulator attempts an exact recreation of hardware with software.

As pointed out earlier, this is actually not really correct or perhaps confusing -- the language on (most) Linux systems is x86, as is on (most) Windows. But, while the language is the same, Windows and Linux have different "higher level concepts", and Wine can sort of work as a dictionary for looking up the Windows "meaning". But the analogy falls apart rather fast.

The point is: An operating system doesn't execute a program, really, it just nudges the CPU to do the actual execution. The OS is just there for outsourcing some tasks that otherwise every program would need to do (much simplified). Programs ask the OS to do these tasks for them, however the interface b/w OS <-> program differs from Windows to Linux.

So, while most parts (in theory) of a Windows and a Linux binary are pretty much the same, they differ when it comes to asking the OS to do tasks like "render picture on screen". In that case, the program can then consult Wine and Wine tells Linux what to do.

Side note: Actually the complete Windows OS API is already such a translation layer. Because the "actual" OS (the Kernel) when using Windows doesn't "speak Windows" (win32) but NT. So while on Windows asking to render a picture looks like:

program -> Win32 API -> NT API

on Linux it looks like:

program -> Wine -> Linux API

So, basically, Wine is a Win32 API implementation (and program loader) for the Linux kernel instead of the NT kernel one.
What exactly are you trying to prove with all that? because all I see is a kid just wanting to prove some one wrong on the internet again. See this is the reason I don't post here much, there is always some self proclaimed Linux GURU wanting to prove you wrong. It's petty.
I know all about coding, how operating systems work, and how API's communicate, you don't need to prove any thing to me. Don't just assume other people don't know any thing.
Technically, you're (almost) right, congratulations to you. But you missed one stupidly obvious and huge point, the OP's original question.
"Could anyone give me a one-sentence summary on the difference between emulators and translation layers?"
He wanted a short summary of the difference between them. Not a lecture of the in's and out's of how API's work.
So in a short summary, I am still right, because while WINE is an API (like you say), it still just [/i]acts as a translator/interpretor between Windows and Linux API's.
I could have always just said "kernel>api>wine api>api>kernel", but that's not what he asked for is it?
Dude, chill.
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!
The comments on this article are closed.