Longer answer: remember my red square example earlier? Software is typically written for an operating system rather than a specific machine. Each operating system can do similar things but they do those things in different ways. So my red square program for windows would be different that on for Linux or Mac.
When your write software, it calls out of other things in the operating system to do work on its behalf so it’s written with the expectation that what it’s talking to will already understand the things it’s going to say the way it’s already programmed to say them. But when you try to run a windows game on something other than windows, it doesn’t work. It’s like trying to talk to someone when they speak a different language. You can’t understand eachother.
Enter WINE. WINE translates windows instructions into Linux instructions on the fly. It is able to intercept instructions a program sends out to the OS, then translate them to whatever equivalent Linux has.
This works…ish. Because Linux and windows and built entirely differently, there isn’t always a direct equivalent for what a program might ask the OS to do. So WINE has to get clever. WINE has been taught over the years what is close enough to expected behavior for most programs to generally run fine with it. But because there is so much difference between expected behavior and what we are able to fake, it can’t create a solution that works 100% of the time so some apps might work while others don’t. You’ll have to try it to be sure.
But you asked about games and games are a bit more tricky. Games have extra things in them that most other apps don’t have. The biggest concern with games are DRM and anti-cheat code.
DRM (digital rights management) basically tries to keep people from making illegal copies of their games. There are many different methods of DRM but they all expect the environment they are run in to work in a very specific way, so if they see something unexpected, even if it’s technically right, it will fail. The DRM will assume the game is an illegal copy and won’t run. WINE isn’t great with DRM but sometimes it can work anyway.
The other issue is anti-cheat and this has a similar issue to some forms of DRM. With anti-cheat, a game is designed to notice if someone is peeking at its working memory and possibly writing changes that the game didn’t want. So some of these install very low-level drivers in the system that tell the game what is spying on its memory. Some DRM systems work this way too.
WINE is super clever, but remember that it is only able to fake an environment and translate commands on the fly. It needs equivalents to exist in Linux or at least something close enough it can make up the difference. These anti-cheat drivers are basically malware because they don’t follow the rules that normal software does. They don’t behave like normal software does. They need to install at the kernel level and mess with things that deeply. Linux kernel modules DO exist but they work entirely differently from windows kernel modules and there’s no way to translate something that low level in real time. There’s also no interest in creating such a technology as even Microsoft has admitted it was a terrible idea and are now kicking third parties out of its kernel thanks to the crowdstrike incident.
So if a game calls out for that anti-cheat software or DRM driver saying “hey you’ve got my back, right?” There’s nothing there to answer it. So the game won’t run.
There is some good news though. For many reasons, there has been massive blowback against DRM over the years and many vendors are paying attention and selling games without invasive DRM and anticheat measures. GOG has lots of DRM-free games and there are plenty of cracked games out there that had these obnoxious bits of code yanked out if you know where to look. There’s also plenty of small, indie games that never had DRM or kernel-level anti-cheat code in the first place and those have a much higher success rate of running under WINE. Some of them even have native Linux versions. (If you install zandronum on Linux natively, no wine, you can run all zandronum games, like doom or megaman 8-bit deathmatch)
Short answer: yes and no
Longer answer: remember my red square example earlier? Software is typically written for an operating system rather than a specific machine. Each operating system can do similar things but they do those things in different ways. So my red square program for windows would be different that on for Linux or Mac.
When your write software, it calls out of other things in the operating system to do work on its behalf so it’s written with the expectation that what it’s talking to will already understand the things it’s going to say the way it’s already programmed to say them. But when you try to run a windows game on something other than windows, it doesn’t work. It’s like trying to talk to someone when they speak a different language. You can’t understand eachother.
Enter WINE. WINE translates windows instructions into Linux instructions on the fly. It is able to intercept instructions a program sends out to the OS, then translate them to whatever equivalent Linux has.
This works…ish. Because Linux and windows and built entirely differently, there isn’t always a direct equivalent for what a program might ask the OS to do. So WINE has to get clever. WINE has been taught over the years what is close enough to expected behavior for most programs to generally run fine with it. But because there is so much difference between expected behavior and what we are able to fake, it can’t create a solution that works 100% of the time so some apps might work while others don’t. You’ll have to try it to be sure.
But you asked about games and games are a bit more tricky. Games have extra things in them that most other apps don’t have. The biggest concern with games are DRM and anti-cheat code.
DRM (digital rights management) basically tries to keep people from making illegal copies of their games. There are many different methods of DRM but they all expect the environment they are run in to work in a very specific way, so if they see something unexpected, even if it’s technically right, it will fail. The DRM will assume the game is an illegal copy and won’t run. WINE isn’t great with DRM but sometimes it can work anyway.
The other issue is anti-cheat and this has a similar issue to some forms of DRM. With anti-cheat, a game is designed to notice if someone is peeking at its working memory and possibly writing changes that the game didn’t want. So some of these install very low-level drivers in the system that tell the game what is spying on its memory. Some DRM systems work this way too.
WINE is super clever, but remember that it is only able to fake an environment and translate commands on the fly. It needs equivalents to exist in Linux or at least something close enough it can make up the difference. These anti-cheat drivers are basically malware because they don’t follow the rules that normal software does. They don’t behave like normal software does. They need to install at the kernel level and mess with things that deeply. Linux kernel modules DO exist but they work entirely differently from windows kernel modules and there’s no way to translate something that low level in real time. There’s also no interest in creating such a technology as even Microsoft has admitted it was a terrible idea and are now kicking third parties out of its kernel thanks to the crowdstrike incident.
So if a game calls out for that anti-cheat software or DRM driver saying “hey you’ve got my back, right?” There’s nothing there to answer it. So the game won’t run.
There is some good news though. For many reasons, there has been massive blowback against DRM over the years and many vendors are paying attention and selling games without invasive DRM and anticheat measures. GOG has lots of DRM-free games and there are plenty of cracked games out there that had these obnoxious bits of code yanked out if you know where to look. There’s also plenty of small, indie games that never had DRM or kernel-level anti-cheat code in the first place and those have a much higher success rate of running under WINE. Some of them even have native Linux versions. (If you install zandronum on Linux natively, no wine, you can run all zandronum games, like doom or megaman 8-bit deathmatch)
Thank you, that was very helpful.