Affiliate Disclosure
If you buy through our links, we may get a commission. Read our ethics policy.

CodeWeavers gets Windows apps running on Apple Silicon

Windows games running on Apple Silicon

The developers of CrossOver have announced that their latest version can run both 32-bit and 64-bit Windows applications on the new Apple Silicon M1 Macs.

As other virtualization companies work to transition to Apple Silicon M1, CodeWeavers has announced that their CrossOver software can already run Windows games and apps. The company says that there is more work to do but it is functioning under Apple's Rosetta 2.

As well as tweeting the announcement, CodeWeaver's Jeremy White has written a blog that briefly describes what they've tried out so far. "We also installed the beta version of Big Sur 11.1, because we know it has some critical fixes to Rosetta [2]," he wrote.

"After we did that, we were able to fire up CrossOver and install and run a wide range of Windows applications," continued White. "I can't tell you how cool that is; there is so much emulation going on under the covers. Imagine — a 32-bit Windows Intel binary, running in a 32-to-64 bridge in Wine/CrossOver on top of macOS, on an ARM CPU that is emulating x86 — and it works!"

White does note that, "it isn't perfect." For one example, he mentioned that "Team Fortress 2 showed some lag" and said, "I think we've got some work to do on that front."

Following the announcement on Twitter, CodeWeavers said that it is compiling a list of Windows apps that work. They also answered a question about older version of Internet Explorer, saying "big nope on old version of IE."

Of the other major companies producing Windows software solutions, Parallels has said that it is "excited to see" the benefits of Apple Silicon M1. It has yet to announce a date when its software will be updated to run on it, but the company has made "tremendous progress."

CrossOver differs from Parallels and other virtualization solutions in that it does not require an entire Windows install to run. It isn't yet clear how this may simplify or complicate the issues for virtualization or emulation that not having an Intel chip in the Mac induces.



11 Comments

🎄
Samsonikk 4 Years · 12 comments

If it’s not native to the M1 it will lag which will make it almost unplayable, it will definitely not be an enjoyable experience.

🎅
dysamoria 12 Years · 3430 comments

What I want to know is what they plan to do with WINE when Rosetta 2 is inevitably removed from Mac OS.

🍪
mjtomlin 20 Years · 2690 comments

dysamoria said:
What I want to know is what they plan to do with WINE when Rosetta 2 is inevitably removed from Mac OS.

This is basically a temporary solution. By the time Rosetta 2 is removed we’ll have many other options.

Apparently Parallels is working on a solution and there’s the QEMU (qemu.org) project, which is cross platform already. And there’s an iOS an app called UTM (getutm.app) that could probably be moved to M1 Macs fairly easily.

🎁
dewme 10 Years · 5781 comments

WINE/Crossover is targeting a different set of use cases than Parallels and VMWare. WINE is focused on getting individual apps running across platforms. Basically WINE is installing software shims and adapters to replace only the native operating system dependent calls, libraries, and services that the specific application actually uses with ones that work similarly on the non-native platform. This makes their adaptation, which is not emulation (as the WINE name asserts), very application specific and (in my opinion) very fragile. I say fragile because if the app developer updates their app to use different calls, libraries, or system services on the native platform it will probably no longer work with WINE until an updated set of shims and adapters is built.

I liken WINE somewhat to the way I got my ancient Northgate 101 mechanical keyboard and PS2 mouse to work with a Raspberry Pi. I chained together a full sized DIN-to-PS2 adapter to a PS2-to-USB adapter that handles both the keyboard and mouse. It works because the mechanical interfaces are translated by connector adapters and the electrical signals are translated by a little controller embedded in the PS2-to-USB adapter.  Looks kludgy but works perfectly. 

Parallels and VMWare emulate/virtualize the entire operating system on the foreign host. This sounds like it would be rather slow, but most Intel chips built over the past decade and a half have silicon level assist that improves parts of the virtualization stack significantly. Also, most modern operating systems including macOS, Unix, Linux, and Windows have various types of abstractions around the underlying hardware from applications, i.e., hypervisors, that greatly improve virtualization. All of this underlying hardware and software assist for virtualization greatly improves the performance and robustness of virtualization on these platforms.

Did I mention WINE is not an emulator? In the case of Apple Silicon, Rosetta 2 is providing the required x86 emulation/virtualization.

🎁
zimmie 9 Years · 651 comments

dewme said:
WINE/Crossover is targeting a different set of use cases than Parallels and VMWare. WINE is focused on getting individual apps running across platforms. Basically WINE is installing software shims and adapters to replace only the native operating system dependent calls, libraries, and services that the specific application actually uses with ones that work similarly on the non-native platform. This makes their adaptation, which is not emulation (as the WINE name asserts), very application specific and (in my opinion) very fragile. I say fragile because if the app developer updates their app to use different calls, libraries, or system services on the native platform it will probably no longer work with WINE until an updated set of shims and adapters is built.

I liken WINE somewhat to the way I got my ancient Northgate 101 mechanical keyboard and PS2 mouse to work with a Raspberry Pi. I chained together a full sized DIN-to-PS2 adapter to a PS2-to-USB adapter that handles both the keyboard and mouse. It works because the mechanical interfaces are translated by connector adapters and the electrical signals are translated by a little controller embedded in the PS2-to-USB adapter.  Looks kludgy but works perfectly. 

Parallels and VMWare emulate/virtualize the entire operating system on the foreign host. This sounds like it would be rather slow, but most Intel chips built over the past decade and a half have silicon level assist that improves parts of the virtualization stack significantly. Also, most modern operating systems including macOS, Unix, Linux, and Windows have various types of abstractions around the underlying hardware from applications, i.e., hypervisors, that greatly improve virtualization. All of this underlying hardware and software assist for virtualization greatly improves the performance and robustness of virtualization on these platforms.

Did I mention WINE is not an emulator? In the case of Apple Silicon, Rosetta 2 is providing the required x86 emulation/virtualization.

The WINE team can say it's not an emulator, but it fits the dictionary definition. The application sends a Windows syscall, and WINE's goal is to do the same thing as the Windows libraries and kernel. That means it is emulating the libraries and kernel. So WINE is emulating syscalls mostly by translating them to OS-native syscalls on the host OS. Rosetta is emulating an amd64 processor mostly by translating amd64 instructions into aarch64 instructions.

Meanwhile, Parallels and VMware emulate most of a whole computer, except for the processor. You have to install a whole operating system in them. x86 instruction privilege levels are tracked in "rings", with lower numbers being more privileged. Ring 0 was the most privileged for a while, then they started adding negative rings with VT-x, VT-d, and so on (the "silicon level assist" mentioned above). Windows now tries to grab all the negative rings on boot to prevent malware from grabbing them. I suspect the reason Rosetta doesn't officially support virtualization is related to processor support for these negative rings. Specifically, I bet Apple doesn't feel like faking ring 0 and below, and without faking the hardware support, performance would be really bad. It may not even work at all, because the Intel processors Apple has shipped have always supported a few of the negative rings. It's possible Parallels and VMware don't have their own software emulation for those unsupported instructions in the Mac versions of their products.

It's all emulation, or virtualization, or pathological lying. The difference is what is being lied about.