Anyone virtualizing x86 Windows app on Mac ARM?

I have a mission-critical Windows x86 application that I currently run in a virtual Windows 10 environment via VirtualBox on my Intel MacBook Pro. I’m at the point where I need to upgrade my computer, and of course I want to go with Apple Silicon.

I know you can virtualize an ARM version of Windows on an Apple Silicon Mac, and that this version of Windows can run x86 applications. Has anyone actually done this? What challenges have you run into? The app in question is actively maintained with regular releases – it isn’t some legacy monster from the last 90s or anything – but I don’t see why they would ever release an ARM-native version.

Thanks!

I’m doing this with Parallels Desktop. It was super easy to setup and seems to work fine. The claim is that the ARM version of Windows runs something like 200,000+ X86 apps.

I do it every day with some old Windows apps (and even games sometimes). No issues. It just works.

How “official” is the ARM version of Windows you are running? Last I heard it was only available as a pre-release.

In my case, it’s a full version of Windows 11 ARM, licensed with Pro keys. I think Parallels and VMWare both have a facility to automatically download the image now when you create the VM.

2 Likes

The same. Parallels. It downloaded and installed the Windows image on its VM.

1 Like

]When I upgraded to my M1 MacBook Pro, I also bought the last Intel Mac mini that was available and I run Parallels there… just in case there are any differences between the way apps behave under ARM and Intel chips.

For your own development purposes? Or to run existing applications?

For development purposes so I can still test on Intel Mac, Windows & Linux VMs.

I remote debug to Win11 ARM without issue via both Parallels and VMWare, in addition to an Intel PC. There were differences with graphics early on, with early versions on Win11 ARM, but not for a long time.

The newer versions of Parallels run Windows on ARM without a problem, and its emulation layer for x86 is every bit as good as Rosetta. You’re still emulating inside of a VM so there’s a performance hit but unless you’re doing extremely processor intensive work you’re unlikely to notice.

That said, I’ve done some video rendering in an older version of Magix Vegas in Win11ARM on my M1 MBP and it takes roughly 3-5x the amount of time to render as an equivalent project rendered in an Apple Silicon native app. So performance will really depend on what your app is doing.

there is some free test version of parallels, that runs for 2 weeks IIRC for free
at first launch you can download win11 arm that works free some times too.
you can try for yourself and your app and see how it works.
if you have some hand on a arm mac…

I had a very old win app that worked only in win xp. some big specific made app …
it did not work under vista, nor win7
and on a macbook M1 with parallels and win10 arm it worked again …

Best (and free) VM is by far UTM - https://mac.getutm.app

And you are able to run old Xojo (Windows) with it ?

Yes, Windows 10 Home version both Intel and Arm version.
Intel version is extremely slow due to simulation though (MBP Pro M1 Pro) and not very usable. The ARM version is very usable - well, for testing purposes off course.

1 Like

Thanks.

The x86 emulation is done by Windows, it contains a “Rosetta” called WOW64

It makes ARM32, IA32 (Intel EPIC), and x86 run on ARM64

Parallels “just” host the ARM Windows code in a proper PC virtual machine.

Better you just compile your code for Windows ARM for such cases.

You can also do it with VMware Fusion their on Arm by now, and their free also.

I got rid of my Parallels license and converted the VM to Fusion, no issues, and better if anything when accessing the VM from outside when remoting.

Interesting. I went the other direction for various reasons, most notably that parallels is much faster than fusion in almost everything, but also that Mac VMs under parallels don’t panic nearly as much. Oh, and I can run VMs in parallels as a daemon so they just sit in the background until I need them consuming almost no CPU.

1 Like

I have not had any crashes or any signs of slowdowns of any kind.

But I do not have to touch Windows Arm very often as I have many real Windows machines, the Windows Arm I only have to touch if I have some Arm specific thing to deal with.