This tutorial will show you how to change the Windows on ARM emulation settings of apps for for your account or all users in Windows 10 and Windows 11.
PCs powered by ARM provide great application compatibility and allow you to run your existing unmodified x86 win32 applications. ARM apps run natively without any emulation, while x86 and x64 apps run under emulation on ARM devices.
However, sometimes the emulation performs optimizations that don't result in the best user experience. You can toggle emulation settings from the Properties page of apps.
This Emulations Properties window provides two ways to modify emulation settings. You may select a pre-defined group of emulation settings or select the Use advanced settings option to enable choosing individual settings.
Starting with Windows 11build 26220.7051 (Dev and Beta), Microsoft is enabling the feature update to Prism, our emulator for Windows on Arm, that makes it possible for more 64-bit x86 (x64) applications to run under emulation by adding support for more CPU features under emulation. This support will be made available to any 64-bit x86 (x64) application under emulation by default, and 32-bit x86 applications can be opted in to the support using the emulation settings in the Properties window.
References:
Program Compatibility Troubleshooter on Arm
Guidance for adjusting compatibility settings if your app isn't working correctly on Arm
learn.microsoft.com
How emulation works on Arm
Learn how emulation for x86 and x64 apps makes the rich ecosystem of existing Win32 apps available on Arm devices.
learn.microsoft.com
Changing ARM emulation settings can fix compatibility issues with an app, but can make the app run slower.
Windows on ARM emulation settings are not available for Microsoft Store apps.
ARM emulation settings per app are saved to the registry keys below:
1 Right click or press and hold on the executable file (ex: EXE, MSI) or shortcut for the app you want to change Windows on ARM emulation settings for, and click/tap on Properties. (see screenshot below)
2 Do step 3 (current user) or step 4 (all users) below for which user(s) you want to apply this to.
3 Apply ARM Emulation Settings to App for Current User
A) Click/tap on the Compatibility tab. (see screenshot below)
B) Under Windows on Arm, click/tap on the Change emulation settings button.
C) Go to step 5
4 Apply ARM Emulation Settings to App for All Users
You must be signed in as an administrator to use this option.
A) Click/tap on the Compatibility tab. (see screenshot below)
B) Click/tap on the Change settings for all users button.
C) Under Windows on Arm, click/tap on the Change emulation settings button. (see screenshot below)
D) Go to step 5.
5Check or uncheck (default) Hide emulation capability (x86 apps only) for what you want. (see screenshot below step 6)
This setting is only available starting with Windows 11build 26220.7051 (Dev and Beta).
6Check or uncheck (default) Show newer emulated CPU features for what you want. (see screenshot below)
This setting is only available starting with Windows 11build 26220.7051 (Dev and Beta).
7 Do step 8 (recommended) or step 9 (advanced) below for how you want to change emulation settings.
8 Select Recommended Group of Emulation Settings
A) Select Default, Safe emulation, Strict execution, or Very strict execution in the drop menu for what you want. (see screenshots below)
B) Click/tap on OK, and go to step 10.
9 Select Individual Advanced Emulation Settings
A) Check Use advanced settings. (see screenshot below)
B) Select Fast (default), Strict multi-core operation, Very strict multi-core operation, or Force single-core operation in the drop menu for what you want. (see screenshot below)
These settings change the number of memory barriers used to synchronize memory accesses between cores in apps during emulation. Fast is the default mode, but the strict and very strict options will increase the number of barriers. This slows down the app, but reduces the risk of app errors. The single-core option removes all barriers but forces all app threads to run on a single core.
C) Check or uncheck (default) the Emulation settings you want. (see screenshot below)
D) When finished, click/tap on OK, and go to step 10.
Emulation setting
Result
Disable application cache
The operating system will cache compiled blocks of code to reduce emulation overhead on subsequent executions. This setting requires the emulator to recompile all app code at runtime.
Disable hybrid execution mode
Compiled Hybrid Portable Executable (CHPE), binaries are x86 compatible binaries that include native Arm64 code to improve performance, but that may not be compatible with some apps. This setting forces use of x86-only binaries.
Additional lightweight emulation protections
A catch-all update affecting things like volatile metadata which can impact performance when running an x86 or x64 app in emulation.
Strict self-modifying code support
Enable this to ensure that any self-modifying code is correctly supported in emulation. The most common self-modifying code scenarios are covered by the default emulator behavior. Enabling this option significantly reduces performance of self-modifying code during execution.
Disable RWX page performance optimization
This optimization improves the performance of code on readable, writable, and executable (RWX) pages, but may be incompatible with some apps.
Disable JIT optimization (x64 apps only)
This is no longer used and will be removed in future versions of the Troubleshooter.
Disable floating point optimization (x64 apps only)
Check to emulate x87 floating point at a full 80-bit precision, but at a performance cost. x87 is a floating-point coprocessor used in some older x86 processors to perform floating-point arithmetic using an 80-bit floating point format with higher precision than the 32-bit or 64-bit format.
10 Click/tap on OK. (see screenshots below)
That's it,
Shawn Brink
Related Tutorials
Add or Remove Compatibility tab in App Properties in Windows 11
Enable or Disable Run App in Compatibility Mode in Windows 11
Question
MOoD90s 0
This tutorial will show you how to change the Windows on ARM emulation settings of apps for for your account or all users in Windows 10 and Windows 11.
PCs powered by ARM provide great application compatibility and allow you to run your existing unmodified x86 win32 applications. ARM apps run natively without any emulation, while x86 and x64 apps run under emulation on ARM devices.
However, sometimes the emulation performs optimizations that don't result in the best user experience. You can toggle emulation settings from the Properties page of apps.
This Emulations Properties window provides two ways to modify emulation settings. You may select a pre-defined group of emulation settings or select the Use advanced settings option to enable choosing individual settings.
Starting with Windows 11 build 26220.7051 (Dev and Beta), Microsoft is enabling the feature update to Prism, our emulator for Windows on Arm, that makes it possible for more 64-bit x86 (x64) applications to run under emulation by adding support for more CPU features under emulation. This support will be made available to any 64-bit x86 (x64) application under emulation by default, and 32-bit x86 applications can be opted in to the support using the emulation settings in the Properties window.
References:
Program Compatibility Troubleshooter on Arm
How emulation works on Arm
Changing ARM emulation settings can fix compatibility issues with an app, but can make the app run slower.
Windows on ARM emulation settings are not available for Microsoft Store apps.
ARM emulation settings per app are saved to the registry keys below:
(current user)
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
OR
(all users)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
Here's How:
1 Right click or press and hold on the executable file (ex: EXE, MSI) or shortcut for the app you want to change Windows on ARM emulation settings for, and click/tap on Properties. (see screenshot below)
2 Do step 3 (current user) or step 4 (all users) below for which user(s) you want to apply this to.
You must be signed in as an administrator to use this option.
5 Check or uncheck (default) Hide emulation capability (x86 apps only) for what you want. (see screenshot below step 6)
This setting is only available starting with Windows 11 build 26220.7051 (Dev and Beta).
6 Check or uncheck (default) Show newer emulated CPU features for what you want. (see screenshot below)
This setting is only available starting with Windows 11 build 26220.7051 (Dev and Beta).
7 Do step 8 (recommended) or step 9 (advanced) below for how you want to change emulation settings.
These settings change the number of memory barriers used to synchronize memory accesses between cores in apps during emulation. Fast is the default mode, but the strict and very strict options will increase the number of barriers. This slows down the app, but reduces the risk of app errors. The single-core option removes all barriers but forces all app threads to run on a single core.
10 Click/tap on OK. (see screenshots below)
That's it,
Shawn Brink
Link to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.