Cómo ejecutar juegos x86 pesados y software en procesadores Arm y RISC-V
Imagina que compraste una computadora de placa única Arm completamente nueva o un potente servidor RISC-V, instalaste Linux, y... te topaste con un muro. Tu juego favorito de Steam, software propietario de trabajo, o el clásico Wine simplemente se niegan a ejecutarse. Están compilados para x86_64, pero tú tienes una arquitectura completamente diferente. Generalmente, la gente sugiere QEMU en estos casos, pero jugar a través de él es toda una experiencia: el retraso es tan malo que preferirías simplemente apagarlo.
El proyecto box64 resuelve este problema de manera elegante. No es solo un emulador, sino una capa que puede "alimentar" bibliotecas nativas de tu sistema a la aplicación emulada.

¿Qué hace especial a este emulador?
La mayoría de los emuladores intentan traducir fielmente cada instrucción de CPU. Esto es confiable pero muy lento. El desarrollador de box64 (conocido como ptitSeb) tomó un enfoque diferente.
Cuando un programa x86_64 llama a una función del sistema — por ejemplo, quiere renderizar gráficos a través de OpenGL o asignar memoria a través de libc — box64 no emula esta llamada dentro de un entorno virtual. En su lugar, redirige la llamada directamente a las bibliotecas nativas de tu dispositivo (Arm64 o RISC-V).
Como resultado, los cálculos pesados recaen sobre el hardware "nativo", y solo la lógica de la aplicación se emula. Esto proporciona un aumento de velocidad colosal. Según los benchmarks del autor, la combinación con un recompilador dinámico (DynaRec) funciona de 5 a 10 veces más rápido que un intérprete regular.
Qué puedes ejecutar
La lista de compatibilidad del proyecto es enorme. En primer lugar, está dirigido a jugadores y a quienes usan software especializado.
- Juegos de Steam. Sí, puedes ejecutar juegos en una Raspberry Pi 4 o 5 que nunca fueron portados a Arm.
- Wine y Proton. Esto abre el camino para ejecutar aplicaciones de Windows. Si tienes tanto box64 como su "hermano menor" box86 (para programas de 32 bits), puedes hacer funcionar casi cualquier software.
- Juegos de Unity. Hay un matiz aquí: a menudo requieren un OpenGL reciente. En algunas placas, necesitas usar variables de entorno para "engañar" al controlador y hacer que el juego funcione.
Curiosamente, el proyecto incluso soporta arquitecturas específicas como LoongArch. Está claro que la comunidad ayuda activamente con el hardware: la lista de agradecimientos incluye Adlink, Pine64, e incluso los equipos de desarrollo de Deepin.
Cómo funciona en la práctica
Usar la herramienta es sorprendentemente simple. Si ya has compilado el proyecto (las instrucciones en el repositorio son detalladas, aunque requieren instalar un montón de dependencias), el lanzamiento se ve así:
box64 ./my_x86_64_program
Si necesitas ejecutar un script de instalación completo (por ejemplo, de GOG) que verifica la arquitectura a través de uname -m, puedes hacerlo así:
box64 script.sh
Dentro, box64 falsificará la respuesta del sistema, y el script pensará que se está ejecutando en un procesador x86 regular.
Para quienes no quieren escribir el comando cada vez, existe box64-bash — un shell familiar donde todos los ejecutables son automáticamente captados por el emulador.
Matices y escollos
No esperes que todo funcione "out of the box" con tasas de frames perfectas.
Primero, el almacenamiento en caché. En la primera ejecución, box64 genera código optimizado y lo guarda en ~/.cache/box64. Esto acelera las ejecuciones posteriores, pero puede "consumir" hasta 2 GB de espacio en disco. Si el espacio es limitado, necesitarás limitar este comportamiento a través de la configuración.
Segundo, los gráficos. En Raspberry Pi, a menudo tienes que establecer soluciones alternativas como:
MESA_GL_VERSION_OVERRIDE=3.2 BOX64_DYNAREC_STRONGMEM=1 box64 ./game
Esto es necesario para evitar bloqueos debido a diferencias en cómo x86 y Arm manejan la memoria.
Tercero, aplicaciones de 32 bits. Box64 solo funciona con binarios de 64 bits. Si necesitas ejecutar un juego antiguo, tendrás que instalar box86. El trabajo en box32 está actualmente en curso, pero el autor indica honestamente que el proyecto todavía está en fase experimental.
¿Vale la pena intentarlo?
Si eres un desarrollador que quiere cambiar a un portátil Arm con Linux, o un entusiasta con una placa RISC-V — definitivamente sí. Es el proyecto más activo y con mejor rendimiento en su nicho.
Box64 no intenta reemplazar la virtualización completa, simplemente te da la capacidad de usar software familiar donde no debería existir. El proyecto está escrito en C, muy compacto y flexible en configuración.
Por supuesto, la documentación está dispersa en diferentes archivos en algunos lugares, y tendrás que profundizar en los manuales para configurar Wine, pero el resultado vale la pena. Cuando software destinado a potentes equipos de escritorio se ejecuta en una pequeña placa por unas pocas docenas de dólares, se siente como un poco de magia.
Puedes consultar el código fuente y las instrucciones de compilación en el repositorio oficial ptitSeb/box64. También hay enlaces a listas de compatibilidad de juegos que se actualizan casi a diario.
Proyectos relacionados