QEMU recently gained Apple Silicon hypervisor support. That was pretty damn cool for the first few weeks of M1 in people’s hands. Even without any optimizations, Windows 10 on M1 outclasses the Surface Pro X and even my Ryzen gaming desktop. Unfortunately, that didn’t include 3D acceleration (though virtio-gpu is now a thing for 2D).
Luckily, Parallels has ported their virtualization software to M1. It’s incredibly janky (and certainly deserving of a technical preview because of that!), but shows a lot of promise, complete with D3D11 support for games. Unfortunately, it requires some hacks to get running stable, but it’ll work fine after that.
Parallels will only run ARM OSes, there’s no x86 emulation other than what a guest might have. This means you’re going to have to install the ARM version of Windows. To get Windows 10 running, I had to use the VHDX that comes from the Windows Insider download site. Sites like UUP can assemble you a newer ISO, but it won’t boot for me; the Windows installer will throw a cryptic error.
You’ll probably want to update your Windows 10 to the developer ring, which supports amd64 emulation. Unfortunately, there’s a bug in Parallels that makes the framebuffer freeze. It looks like it’s hung, but it does update the cursor and accept keystrokes. If you force it to update (like resize the window), it’ll usually show what you’ve did. What you need to do is make sure you’re at the desktop and reinstall Parallels Tools, from the Action menu. When it asks you to reboot, don’t. You can now use that GPU for something. (I think there’s a process you can kill to get it to stop periodically prompting you to reboot.)
UPDATE: You can just disable the time sync. Actions -> Configure -> Options -> More Options -> Time: Do not sync. Don’t ask me why, I learned this from Reddit.
DOUBLE UPDATE: Just patch to the latest Parallels, it fixes it.
Audio might require you bump up volume and change the output/input from the Parallels menu bar.
Don’t try to bump the VRAM. It’ll cause your VM to hang on launch. I’ve heard 256 MB is the limit, but I haven’t tried that – just leave it on auto.
Many features like snapshots are missing.
I haven’t tried Linux, but I’ve heard it’s picky about distros. Ubuntu is known to work, but there is no Tools support for aarch64 just yet.
Things I’ve tried
For the curious, my system is the base model MacBook Air with 16 GB RAM and the 7-core GPU. I can try some more games, but it depends on what I have.
- Yes, it runs Crysis. Actually pretty decently: 2560×1440, Very High, DX10, no AA, 13 FPS. Not bad for translated, emulated, and virtualized on a fanless laptop. At low settings, it doesn’t even get warm.
- Fallout: New Vegas runs at native resolution at max settings just dandy.
- Dishonored 2 fails to start, it’ll crash immediately at the initial loading screen.
- For a 2D game, Spelunky runs fine. I do have some odd frame pacing though, but it’s hard to notice unless you look for it explicitly.
- Prey runs, though native resolution seems a bit much for it. Dropping down to at most 1680×1050 with low settings seems to be sprightly.
- The original Deus Ex is a bit fiddly. The ancient Direct3D renderer crashes Parallels (!), and the replacement D3D 9/10 drivers crash. OpenGL works, but you can’t change the resolution except from windowed mode.
- Halo: MCC works, but the anti-cheat bombs out because it doesn’t support ARM. It works without anti-cheat, but you won’t be able to do matchmaking.
- My friends have tried (on their MacBook Pro and Mac Mini) Skyrim: SE, Fallout 4, Half-Life 2: Lost Coast, and Borderlands 2. Half-Life, Skyrim, and Borderlands run very well, but Fallout 4 seemed to have some stability issues.
I do notice games (especially Prey and New Vegas) tend to have sluggish cursors in fullscreen. I’m not sure what’s up with that – I’ve noticed there’s a setting, but I haven’t played with it yet.
Overall, it’s quite fiddly, but when it works, it works really well. There’s no reason a MacBook Air without a fan should run these games as well as it does. I’m excited for when Parallels gets more stable, and VMware has their offering out.