- Windows 11 ARM usa Prism para emular apps x86 y x64 con caché de código, soporte AVX/AVX2 y perfiles de compatibilidad ajustables.
- La configuración de emulación por aplicación permite equilibrar rendimiento y estabilidad mediante perfiles y opciones avanzadas multinúcleo.
- El ecosistema ARM nativo crece rápido, pero la emulación y la aceleración de hardware garantizan compatibilidad con la mayoría de apps actuales.
Si estás pensando en dar el salto a un portátil con procesador ARM y quieres seguir usando tus apps clásicas de Windows, la emulación es una pieza clave del puzle. Windows 11 en ARM ha mejorado muchísimo en este terreno, hasta el punto de que, bien configurado, puedes disfrutar de aplicaciones x86 y x64 con un rendimiento muy digno e incluso jugar a muchos títulos que antes ni arrancaban.
En este artículo vamos a ver de forma detallada cómo ajustar las configuraciones de emulación en Windows 11 ARM para exprimir al máximo Prism, el motor de emulación de Microsoft. Verás qué opciones hay en la pestaña de Compatibilidad, qué significan los distintos perfiles (Predeterminado, Seguro, Estricto, Muy estricto), qué hacen los ajustes avanzados (multinúcleo, caché, AVX, código automodificable, etc.) y cómo encaja todo esto con el avance del ecosistema ARM nativo y la aceleración por hardware.
Qué es Prism y cómo funciona la emulación en Windows 11 ARM
Windows 11 en ARM incluye un emulador Prism que permite ejecutar aplicaciones x86 (32 bits) y x64 (64 bits) en procesadores ARM64. En lugar de interpretar instrucción a instrucción, Prism compila en tiempo de ejecución bloques de código x86 a instrucciones ARM64, con optimizaciones para conseguir una experiencia lo más fluida posible.
Este proceso se conoce como compilación just-in-time (JIT). Prism traduce grupos de instrucciones x86 a ARM64, almacena esos bloques optimizados en una caché y, en ejecuciones posteriores, puede reutilizarlos sin volver a traducir desde cero. De esta forma, se reduce la sobrecarga de emulación y se gana rendimiento a medida que usas la app.
El sistema operativo mantiene estas cachés de código traducido por módulo, de modo que si varias aplicaciones utilizan el mismo componente binario, pueden beneficiarse del código ya compilado en el primer arranque. Esto forma parte del motivo por el que algunas apps arrancan más rápido después del primer uso en Windows 11 ARM.
Para las aplicaciones x86 de 32 bits, entra en juego la capa WOW64 (Windows-on-Windows 64-bit), que ya se usa en Windows x64 clásico. Esta capa hace de intermediaria para que el código x86 pueda ejecutarse en un sistema ARM64, gestionando además la redirección de sistema de archivos y registro, igual que en un Windows de 64 bits tradicional.
En el caso de las aplicaciones x64, la arquitectura es distinta: no hay capa WOW64 separada ni rutas especiales del sistema de archivos. En su lugar, Windows utiliza binarios ARM64X PE para los componentes del sistema. Estos binarios se cargan tanto en procesos ARM64 nativos como en procesos x64 emulados desde la misma ubicación, sin redirecciones extra. Eso permite que las apps x64 bajo emulación accedan a todo el sistema (archivos y registro) como si fueran nativas, aunque internamente intervenga Prism.
Es importante saber que la emulación se limita al modo usuario. Drivers y componentes en modo kernel deben compilarse específicamente para ARM64; los controladores x86/x64 no se traducen mediante Prism. Si dependes de hardware muy específico con drivers antiguos, este punto es crítico.
Mejoras de Prism en Windows 11 y novedades como AVX/AVX2
Con Windows 11 24H2, Microsoft introdujo Prism como el nuevo motor de emulación, sustituyendo a la tecnología anterior usada en Windows 10 ARM y las primeras compilaciones de Windows 11. Prism incorpora optimizaciones profundas que reducen el uso de CPU y mejoran el rendimiento, especialmente en procesadores Qualcomm orientados a escritorio (como la familia Snapdragon X).
Algunas optimizaciones de Prism aprovechan características de hardware disponibles solo en determinadas generaciones de chips, pero el emulador está disponible en todos los dispositivos ARM64 compatibles con Windows 11 24H2 y posteriores. La integración es transparente para el usuario: no hace falta instalar nada extra; la emulación forma parte del propio sistema operativo.
Un salto muy importante ha llegado con la actualización acumulativa de octubre de 2025 (parche KB5066835) para Windows 11 25H2 y 24H2. Esta actualización ha habilitado de forma generalizada el soporte emulado de las instrucciones AVX y AVX2, junto con otras extensiones relacionadas como IMC, FMA o F16C. Muchas aplicaciones modernas, sobre todo juegos y software creativo y científico, se niegan a arrancar si no detectan AVX.
Hasta ahora, esa ausencia era una de las mayores barreras para los PC con ARM: multitud de juegos de Steam y títulos con engines recientes, así como algunas herramientas profesionales (incluyendo partes de Adobe Creative Cloud), simplemente no funcionaban. Con Prism traduciendo AVX/AVX2 al vuelo, gran parte de ese software se vuelve ejecutable en Windows 11 ARM, ampliando mucho el catálogo utilizable.
La activación del soporte AVX y AVX2 se realiza por defecto al instalar la actualización (compilación 26100.6725 o superior). No obstante, el usuario puede gestionar la exposición de estas características de CPU emuladas desde las opciones de compatibilidad de cada programa, lo que resulta muy útil para resolver casos puntuales de incompatibilidad.
Cómo abrir y usar la configuración de emulación en Windows 11 ARM
Windows 11 ARM ofrece una interfaz específica para controlar el comportamiento de Prism aplicación por aplicación. Esta interfaz se integra en las propiedades del ejecutable, dentro de la pestaña de Compatibilidad, y permite cambiar tanto perfiles predefinidos como opciones avanzadas.
Para acceder a estas opciones, basta con localizar el archivo .exe de la aplicación que quieres ajustar, ya sea en Program Files, en tu carpeta de usuario o donde esté instalado, y hacer clic con el botón derecho para abrir el menú contextual de Windows.
En el menú contextual, selecciona “Propiedades”. Se abrirá la clásica ventana de propiedades del archivo. Si el sistema es un Windows en ARM, en la pestaña “Compatibilidad” verás una sección específica llamada habitualmente “Windows en Arm” o similar, que no aparece en equipos x64 tradicionales.
Dentro de esa sección, encontrarás el botón “Cambiar configuración de emulación”. Al pulsarlo, se abre la ventana de configuración de emulación ARM, donde podrás elegir entre perfiles estándar o pasar al modo de “Usar configuración avanzada” para activar o desactivar ajustes concretos.
Esta configuración se aplica de forma individual a la aplicación seleccionada. Es decir, puedes tener un juego configurado con ajustes muy estrictos para maximizar compatibilidad, y a la vez mantener tus herramientas de oficina en modo Predeterminado para conservar el mejor rendimiento posible.
Perfiles predefinidos de emulación: Predeterminado, Seguro, Estricto y Muy estricto
La ventana de configuración de emulación ofrece cuatro perfiles de comportamiento que agrupan distintos ajustes avanzados. La idea es que, si no quieres complicarte marcando casillas una por una, puedas elegir un nivel de compatibilidad versus rendimiento con un solo clic.
Los cuatro grupos predefinidos son: Predeterminado, Seguro, Estricto y Muy estricto. Al pasar de uno a otro, el sistema va activando opciones adicionales que suelen mejorar la compatibilidad con software problemático, pero siempre sacrificando cierta parte del rendimiento.
El perfil Predeterminado es el que usa Windows para casi todo. Está pensado como equilibrio óptimo entre velocidad y compatibilidad, aprovechando plenamente las optimizaciones de Prism, incluida la caché de código y las optimizaciones más agresivas de ejecución multinúcleo.
El perfil Seguro desactiva algunas de las optimizaciones más arriesgadas y endurece ciertas garantías de coherencia del código. Puede ser útil si ves comportamientos raros en una app (cierres inesperados, glitches gráficos, errores de cálculo) pero todavía quieres mantener una experiencia relativamente fluida.
Los perfiles Estricto y Muy estricto priorizan claramente la compatibilidad. Añaden barreras de memoria adicionales, relajan cacheos y desactivan optimizaciones que podrían entrar en conflicto con software poco “amigable” con la emulación, como motores antiguos que usan código automodificable de forma agresiva. El coste es notable en rendimiento, por lo que conviene usarlos solo cuando realmente haya problemas.
Restaurar el comportamiento de versiones anteriores de Windows en ARM
Windows en ARM ha evolucionado mucho entre versiones, y algunas aplicaciones antiguas pueden depender, sin quererlo, de detalles de funcionamiento de la emulación que han cambiado con Prism. Para estos casos, Windows incluye opciones especiales orientadas a recrear el entorno que existía en Windows 10 ARM o en revisiones anteriores de Windows 11.
La primera opción relevante es la de “Ocultar la funcionalidad de emulación x64”. Al activarla para una aplicación x86, el sistema le hace creer que el código x64 no puede ejecutarse en el dispositivo. En la práctica, se emula la compatibilidad que existía en Windows 10 ARM, donde solo se podía emular x86, sin soporte para binarios x64.
Esta opción es útil si una aplicación x86 se comporta mal cuando detecta que hay soporte x64, ya sea porque intenta cargar módulos inadecuados o porque espera un entorno de 32 bits más limitado. Al ocultar la emulación x64, puede volver a comportarse como lo hacía en máquinas más antiguas.
La segunda opción relacionada con versiones anteriores es “Ocultar las características de CPU emuladas más recientes”. En Windows 11 24H2 y posteriores, Prism expone muchas extensiones de conjunto de instrucciones (AVX, AVX2, FMA, F16C, etc.) que no existían en revisiones previas de Windows en ARM.
Al marcar esta casilla para una app x64, indicas a Prism que limite el conjunto de características visibles al nivel de compatibilidad anterior, ocultando AVX y demás extensiones nuevas. Esto puede arreglar comportamientos extraños en software que, por ejemplo, detecta AVX pero luego hace suposiciones incorrectas sobre el hardware subyacente.
En el caso de las aplicaciones x86 de 32 bits, el comportamiento es el inverso: por defecto Prism no expone AVX/AVX2 ni las demás extensiones a estas apps. Para ellas, encontrarás una opción llamada “Mostrar características de CPU emuladas más recientes”. Si la activas, la aplicación x86 podrá ver y utilizar ese conjunto ampliado de instrucciones, lo que puede desbloquear funciones adicionales o mejorar el rendimiento de algunos motores modernos compilados también para 32 bits.
Configuración avanzada de emulación: multinúcleo y otras opciones clave
Además de los perfiles predefinidos, la ventana de configuración ofrece un modo “Usar configuración avanzada”, pensado para cuando quieres afinar al máximo el comportamiento de Prism. Aquí puedes activar o desactivar individualmente las distintas optimizaciones de emulación.
Uno de los bloques más importantes de esta sección es la configuración de varios núcleos. En esencia, define cómo gestiona Prism la sincronización de memoria entre hilos durante la emulación, mediante el uso de barreras de memoria más o menos estrictas.
Las opciones habituales para el uso de múltiples núcleos son: operación Rápida, operación de varios núcleos Estricta, Muy estricta y, finalmente, la opción de Forzar operación de un solo núcleo. Cada modo implica un equilibrio distinto entre detección de errores de concurrencia y coste en rendimiento.
En el modo Rápido, que es el predeterminado, Prism coloca un número mínimo de barreras de memoria, confiando en que la mayoría de las aplicaciones bien escritas no van a romper reglas de concurrencia básicas. Este es el mejor modo para casi todos los programas, ya que ofrece el mayor rendimiento sin comprometer normalmente la estabilidad.
Los modos Estricto y Muy estricto aumentan gradualmente el número de barreras y controles. Esto reduce el riesgo de que una app con código de sincronización deficiente (por ejemplo, software antiguo que asumía detalles concretos de ciertos procesadores x86) genere comportamientos no deterministas al correr bajo emulación. El precio a pagar es un descenso claro de rendimiento, especialmente en aplicaciones con muchos hilos.
La opción Forzar operación de un solo núcleo elimina las barreras de memoria porque, directamente, obliga a que todos los hilos de la app se ejecuten en el mismo núcleo. De este modo se evitan los problemas de coherencia entre núcleos, pero se renuncia al paralelismo. Suele ser el último recurso para software muy conflictivo que se rompe incluso con los modos Muy estrictos.
Otras opciones avanzadas de emulación y su impacto
Junto al apartado multinúcleo, la configuración avanzada incluye una lista de ajustes individuales que permiten modificar aspectos muy concretos del funcionamiento de Prism. Entender qué hace cada uno te ayuda a decidir cuándo conviene activarlo.
Deshabilitación de la caché de aplicaciones: normalmente, el sistema operativo almacena en caché los bloques de código ya compilados para que en futuras ejecuciones no haya que traducirlos de nuevo. Si activas esta opción, obligas al emulador a recompilar todo el código de la app en cada ejecución.
Esto puede ser útil en entornos de pruebas o si sospechas que hay un problema de caché corrupta o desactualizada, pero en el día a día siempre penaliza el rendimiento. Para usuarios finales, lo normal es dejar la caché activada.
Deshabilitar el modo de ejecución híbrida (solo apps x86): algunas aplicaciones x86 pueden utilizar binarios híbridos CHPE (Compiled Hybrid Portable Executables), que combinan código x86 con secciones ARM64 nativas para acelerar el rendimiento en equipos ARM. Sin embargo, hay software que no se lleva bien con este formato.
Si activas esta casilla, Prism deja de usar binarios CHPE y fuerza el uso de ejecutables x86 “puros”, favoreciendo la compatibilidad con programas muy antiguos o con sistemas de protección peculiares, a costa de perder esas porciones optimizadas en ARM64.
Protecciones de emulación ligeras adicionales: al habilitar esta opción, Prism ignora la presencia de ciertos metadatos volátiles en los binarios. Es un ajuste de bajo nivel ligado a cómo el emulador interpreta información extra en los ejecutables, y puede evitar problemas con algunos empaquetadores o loaders poco habituales.
Compatibilidad estricta con el código auto-modificable: algunos programas, sobre todo motores antiguos o software muy optimizado, modifican su propio código en tiempo de ejecución. Prism ya cubre la mayoría de estos casos con su comportamiento por defecto, pero si activas esta opción le pides que trate el self-modifying code con la máxima cautela posible.
Esto garantiza que virtualmente cualquier patrón de código automodificable se maneje correctamente, pero el impacto en el rendimiento puede ser muy grande, especialmente si el programa modifica código con frecuencia. Conviene activarlo solo cuando sepas que una aplicación hace este tipo de cosas y no funciona bien en los modos estándar.
Desactivar la optimización del rendimiento de la página RWX: algunas aplicaciones usan páginas de memoria que son a la vez legibles, escribibles y ejecutables (RWX), algo que en la práctica se asocia a motores de scripting, JIT internos o incluso a mecanismos de protección cuestionables.
Prism incorpora una optimización específica para este tipo de páginas que mejora el rendimiento del código que se ejecuta ahí. Sin embargo, no todas las apps toleran bien esa optimización. Si ves comportamientos anómalos en software que maneja mucho código generado dinámicamente, puede ser buena idea desactivar esta optimización.
Deshabilitación de la optimización de punto flotante (x87): x87 es una extensión antigua del conjunto de instrucciones x86 para aritmética de punto flotante, que permite usar una precisión de 80 bits. Para la mayoría del software moderno, una aproximación a 64 bits es suficiente y mucho más eficiente.
Por defecto, Prism tiende a usar esa aproximación de 64 bits para acelerar las operaciones x87. Si marcas esta casilla, el emulador utilizará la precisión completa de 80 bits siempre que corresponda, lo que puede ser crucial en aplicaciones científicas, financieras o de ingeniería muy sensibles al error numérico. La contrapartida es una reducción de rendimiento en las secciones de código que usan intensivamente x87.
Detección de emulación y APIs relevantes para desarrolladores
Desde el punto de vista del código, una aplicación x86 o x64 no tiene por qué saber que se está ejecutando bajo emulación en un equipo ARM, a menos que utilice APIs específicas para consultarlo. Esto ayuda a mantener una alta compatibilidad, ya que muchas apps simplemente ven un entorno x86 “normal”.
Para detectar si un proceso se está ejecutando bajo WOW64 o en un host ARM64, Windows proporciona la API IsWoW64Process2. Usando esta función, un programa puede averiguar tanto la arquitectura del proceso actual como la arquitectura del sistema anfitrión, y herramientas como el Windows Driver Kit (WDK) ayudan en el desarrollo y depuración de controladores para ARM64.
Cuando una aplicación bajo emulación consulta detalles del procesador usando APIs generales (como GetNativeSystemInfo), recibe información sobre un procesador virtual emulado, no sobre el ARM físico. Esto se hace conscientemente para preservar la compatibilidad con software que espera ver ciertas características de un CPU x86.
Si lo que interesa es detectar específicamente las capacidades de emulación que ofrece el sistema, la API recomendada es GetMachineTypeAttributes. Con ella se pueden consultar las arquitecturas soportadas y características de emulación disponibles, algo especialmente útil para instaladores o lanzadores que quieran adaptar su comportamiento según el entorno (por ejemplo, elegir entre binario ARM64 nativo, x64 o x86).
Actualización de aplicaciones a versión ARM nativa y ecosistema actual
Aunque la emulación ha mejorado muchísimo, la mejor experiencia siempre la tendrás con aplicaciones compiladas de forma nativa para ARM64. Microsoft insiste en que la emulación debe verse como un “puente” para que el ecosistema pueda seguir funcionando mientras los desarrolladores migran sus proyectos.
En los últimos años, especialmente desde la llegada de los ordenadores Copilot+ y los procesadores Snapdragon X, el número de apps ARM nativas se ha disparado. Según datos internos de Microsoft, los usuarios de Windows 11 en ARM pasan ya alrededor del 90 % de su tiempo en aplicaciones compiladas de forma nativa, algo impensable hace solo unas generaciones.
Entre las categorías con mejor soporte en ARM nativo se encuentran las herramientas de productividad, creatividad, VPN, redes sociales, entretenimiento y seguridad. Grandes nombres como Google Chrome y gran parte de Adobe Creative Suite cuentan ya con builds específicos para ARM64 en Windows.
Microsoft, por su parte, ha portado muchas aplicaciones populares: 7-Zip, Google Drive, Dropbox, Trello, Todoist, LibreOffice, Camtasia, Paint.NET, djay Pro, CapCut, Figma, Apple TV, Apple Music, Telegram, WhatsApp, Spotify, DaVinci Resolve, Blender, Luminar Neo y, por supuesto, la suite Microsoft Office entre muchas otras.
En este contexto, Prism y los chips Snapdragon X actúan como red de seguridad: cuando una aplicación todavía no tiene versión ARM nativa, la emulación garantiza un rendimiento razonable y una compatibilidad muy buena. El principal punto débil sigue siendo el gaming de alto nivel, sobre todo en títulos muy exigentes o con sistemas antitrampas que no colaboran bien con la emulación.
Redactor apasionado del mundo de los bytes y la tecnología en general. Me encanta compartir mis conocimientos a través de la escritura, y eso es lo que haré en este blog, mostrarte todo lo más interesante sobre gadgets, software, hardware, tendencias tecnológicas, y más. Mi objetivo es ayudarte a navegar por el mundo digital de forma sencilla y entretenida.