Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

robo456

macrumors 6502
Original poster
Mar 3, 2008
377
49
New Jersey
Afternoon all,

I was curious about running native x86/x64 applications in the ARM version of Windows 11 under Parallels on the new M1/M2 Macs.

Is this possible? I know of Rosetta, but wasn't sure how that plays into the VM side of things. The reason I ask, I wanted to get back into astrophotography (among many other hobbies, eheh) and there were Windows programs that helped control my Celestron telescope, as well as the program, RegiStax, that helped overlay multiple images to create one enhanced one.

Anyone have any insight into these, or other pc-native applications on the new Apple architecture?

Thanks!
--rob
 
Rosetta doesn't play into it at all yet, but Windows on Arm has it's own emulator framework. It's not quite as good as rosetta, but most things run. Not everything, so you just have to test and see if it runs what you want. If it takes any kind of spacial driver, the chances of it working are slim.
 
  • Like
Reactions: jdb8167
I did test it (RegiStax) on my Surface Pro X and it installs and runs just fine. It is an x86 32bit app, which Rosetta could not emulate anyway.
There are some limitations on Mac, when running Windows, compared to the Pro X but I believe none are applicable in this case.
 
Last edited:
I am using Docker to virtualize 5 containers that are all x86. The latest Docker Desktop (4.16.2) supports it under experimental features. Check this article for more information on setup. On my m1 Max pro with 64 32 gigs it actually runs really well so far. Essentially it allows your containers to use Rosetta along with QEMU for emulation.

Edit: My personal M1 Max has 64 gigs. This is running on my work M1 Pro with 32 gigs. My mistake.
 
Last edited:
I am using Docker to virtualize 5 containers that are all x86. The latest Docker Desktop (4.16.2) supports it under experimental features. Check this article for more information on setup. On my m1 max with 64 gigs it actually runs really well so far. Essentially it allows your containers to use Rosetta along with QEMU for emulation.

Fantastic, thanks KSJ1!
 
Rosetta doesn't play into it at all yet, but Windows on Arm has it's own emulator framework. It's not quite as good as rosetta, but most things run. Not everything, so you just have to test and see if it runs what you want. If it takes any kind of spacial driver, the chances of it working are slim.

This was one of the biggest issues when Microsoft released the original Surface Go with an ARM-based CPU and OS. To be honest, I'm still not entirely sure to what extent Microsoft has attempted to resolve those issues.
 
This was one of the biggest issues when Microsoft released the original Surface Go with an ARM-based CPU and OS. To be honest, I'm still not entirely sure to what extent Microsoft has attempted to resolve those issues.
Microsoft still sells an ARM-based Surface Pro. They no longer market it as the “Surface Pro X” but instead as the 5G version of the “regular” Surface Pro. They seem committed to the ARM platform. Plus Qualcomm and Samsung are developing custom ARM chips now (and not just using stock ARM cores), so we could see more Windows on ARM PCs soon.
 
Most x86/amd64 Windows apps work just fine in Windows 11/ARM. I have had trouble with some stuff but I've also had success beyond my wildest imagination - for example, Age of Empires 3 runs nicely on my Macbook using Parallels and Windows' built-in x86/amd64 emulation.
 
  • Like
Reactions: robo456
[...] is an x86 32bit app, which Rosetta could not emulate anyway.
Not quite true. CodeWeavers Crossover (a paid version of Wine) runs 32-bit Windows binaries on Apple Silicon, and it relies on Rosetta to run the x86 code.

User-mode 32-bit x86 instructions are a subset of user-mode 64-bit x86 instructions, and they are all still legal in 64-bit mode. To run 32-bit x86 code inside a 64-bit x86 process, you have to set up a LDT (local descriptor table) defining a 32-bit address space for the 32-bit code to play around in, and provide a thunking layer to convert any library / system calls (for Wine, this is called wine32on64).

Early Catalina versions blocked LDT setup unless you disabled SIP, which meant 32-bit code couldn't run on Intel Macs even if you tried to provide alternatives to Apple's system libraries (or didn't need them in the first place). Later versions of Catalina unblocked this, and AFAIK this was done because CodeWeavers requested it. It wasn't great that they were having to tell their customers that if they upgraded to Catalina, they'd have to disable SIP to keep running their favorite 32-bit Windows app.

I might have some of the details of this wrong. Low level x86 technical stuff just evaporates from my brain whenever I don't have to actively think about it, so I always end up re-researching it when I write posts like this one, and I'm never fully sure I understood everything right because it's such a weird CPU architecture. (Understandable given the constraints under which it was created and evolved, but the result is still very strange, if you ask me.)
 
  • Like
Reactions: Colstan
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.