Microsoft: Here are the limitations facing Windows on ARM compatibility mode

New laptops powered by the Snapdragon 835 can run 32-bit Windows apps, but internationalization and accessibility tools require modification.

Is the PC market decline a thing of the past?
Building a slide deck, pitch, or presentation? Here are the big takeaways:
  • New ARM-powered laptops run most programs, though external devices like audiovisual tuners, drawing tablets, and others will require ARM specific drivers.
  • Input method editors (IMEs) commonly used for languages like Chinese, Japanese, and Arabic require ARM specific versions to operate.

Last December, Microsoft unveiled a handful of laptops powered by the Qualcomm Snapdragon 835 SoC, which run a version of Windows for ARM processors. Unlike Windows RT--which only supported apps that used specific APIs, compiled for ARM processors--Windows 10 on ARM allows for inline emulation of x86 apps. However, significant limitations exist in what the x86-on-ARM emulator is capable of doing.

According to new documentation released by Microsoft, drivers compiled for x86 processors cannot be emulated using the inline emulator. While apps that interface with a given peripheral may work inside the inline emulator, any function of the app dependent on a driver will not work without a driver compiled for ARM64. For example, a USB-connected video capture card or TV tuner would need an ARM64 driver provided by the manufacturer. Without this, the user software would be effectively useless.

Hyper-V, the included virtualization environment in Windows 10, does not work on ARM processors. Because of processor differences, it's unclear if virtual machines are particularly viable on ARM, short of full emulation environments such as Bochs.

SEE: Comparison chart: Office suites (Tech Pro Research)

Shell extensions compiled for x86 are incompatible with the inline emulator. Depending on your use case, this limitation can be extremely stifling. For people who write in languages that do not use the Latin character set, input method editors (IMEs) are necessary to convert typed letters into the character set used in that language. While Windows has an IME built in for many languages, third-party IMEs are often more popular than the bundled option. In Japan, ATOK is more widely used than the Windows IME. As ATOK does not have an ARM64-native version, it cannot be used on Windows for ARM devices.

This limitation extends to other programs that use shell extensions--accessibility software, which assists users with cognitive or visual impairments, hearing disabilities, or motor or dexterity limitations will require ARM64-compiled versions to work. Additionally, file management software such as 7-Zip or Dropbox, which add shell extensions to allow users to easily manage files from a context menu, require an ARM64 targeted version.

The inline emulator also has modest limitations on graphics capabilities. It can support DirectX from version 9 through version 12. However, programs that depend on older versions of DirectX are incompatible. This is unlikely to be a significant problem in practice, as DirectX 9 debuted 15 years ago. Conversely, the inline emulator only supports OpenGL 1.1, which was released over 20 years ago. Under typical circumstances, newer programs with OpenGL support would have a corresponding DirectX mode, though exceptions are not beyond the realm of possibility.

When the ARM-powered Windows laptops were first introduced, they were said to run Windows 10 S--a restricted version which only allows apps from the Windows Store--though rumors indicate the entire Windows 10 S SKU is likely to be axed in favor of an optional "S Mode." The inline emulator is capable of running running programs from the Windows Store or otherwise installed manually, though it can only handle 32-bit apps.

Also see

Image: ASUS