The first Windows 10 computers with ARM-based chips are coming soon, including the Asus NovaGo, HP Envy x2, and Lenovo Miix 630.

While these won’t be the first devices with ARM-based chips to run something called Windows, they’re different from Windows phones or Windows RT devices in that they’ll run a full-fledged desktop version of Windows that performs almost like Windows on a computer with an Intel or AMD processor.

Almost.

Microsoft has posted some new documentation for Windows 10 on ARM explaining how x86 emulation works and some troubleshooting tips for developers. But the company is also outlining some “limitations of apps and experiences on ARM.”

Chip architecture (x86 and ARM32 go, x64 no go)

Microsoft is confirming that you’ll be able to run most applications designed for x86 chips thanks to emulation. But 64-bit apps designed for Intel and AMD chips will not currently be supported.

Applications and built-in Windows experiences compiled for ARM64 should be good to go. Microsoft says that includes Windows 10 features like Explorer, the Start Menu, and Cortana. The company says Notepad and some other key Windows apps have also already been compiled to run natively on ARM64 devices.

When it comes to Universal Windows Platform apps (things you can download from the Microsoft Store), Windows 10 on ARM supports x86 and ARM32 apps… although if there’s an ARM32 version available that’ll always be the one that’s installed.

Interestingly it doesn’t seem like there’s any support for native ARM64 apps yet.

Games, drivers, and other features that might not work

Microsoft notes that games and other applications that require hardware-accelerated OpenGL or “use a version of OpenGL later than 1.1” don’t work.

Keep in mind that OpenGL 1.2 was released in 1998… so an awful lot of games probably won’t work.

Microsoft also says that “games that rely on ‘anti-cheat’ drivers are not supported,” which means that games with DRM aren’t going to work.

Windows 10 on ARM also only supports ARM64 drivers. That means any hardware that relies on an x64 or x86-specific driver isn’t going to work unless the driver is rewritten to support ARM64 architecture.

Other things that won’t work on Windows 10 on ARM include:

• App that customize the native Windows experience by doing things like adding a shell extension (such as a cloud storage app that tries to add an “upload to cloud” option to the right-click menu in Windows Explorer), or input method editors or assistive technologies that use native OS components to load non-native components

• Apps that assume any device with an ARM-based OS is using a mobile version of Windows may do things like display in the wrong orientation or use a mobile layout.

• Windows Hypervisor Platform is not supported, so you can’t run virtual machines using Hyper-V.

Microsoft’s suggested workarounds: make new versions of your apps

If you’re an end user rather than a developer, you may be able to run the Program Compatibility Troubleshooter or adjust emulation settings to get some apps to work better. But there’s no guarantee that’ll resolve all of the issues.

For the most part, if a Windows application doesn’t work on Windows 10 for ARM, Microsoft suggests developers recompile it to use supported technologies.

For example, the solution for an app that’s only currently available for x64 architecture? Make an ARM or x86 version.

Have an app that uses OpenGL 4.2? Make a version that uses DirectX 9 or later instead.

Have a driver that isn’t designed for ARM? Recompile it to work with ARM.

Which is all well and good, but part of the appeal of Windows 10 on ARM is supposed to be that it’s compatible with legacy Windows applications in a way that Windows RT never was. Asking developers to do more work to add support for ARM isn’t all that different from what Microsoft has been doing (with limited success) for years: asking developers to port their apps to the new Universal Windows Platform and distribute them through the Windows Store.

The good news is that some (maybe even many) legacy Windows applications should work out of the box on upcoming Windows 10 on ARM devices like the HP Envy x2, Asus NovaGo, and Lenovo Miix 630. But unless PC makers sell an awful lot of those computers, it’s hard to imagine that developers will have much incentive to develop for the platform. And if developers don’t adopt the platform, it might be tough for Microsoft and PC makers to convince customers to buy those new Windows on ARM PCs.

So there’s a bit of a chicken and egg problem here. Maybe if there weren’t quite so many limitations on what Windows on ARM support, that wouldn’t be the case. But getting millions of existing Windows apps to run on devices with an entirely different chip architecture was already a pretty big challenge. It’s not surprising that there are some limitations.