felix86: el emulador que permite ejecutar juegos y aplicaciones x86/x86-64 en procesadores RISC-V con Linux

Este proyecto en desarrollo busca acercar la compatibilidad con software clásico de PC a la arquitectura RISC-V usando técnicas avanzadas de emulación y recompilación JIT

Los usuarios de Linux en arquitecturas alternativas como RISC-V están de enhorabuena. El proyecto felix86, desarrollado por OFFTKP, permite ejecutar aplicaciones y juegos diseñados para arquitecturas x86 y x86-64 en procesadores RISC-V, abriendo nuevas posibilidades para esta plataforma emergente. Aunque se encuentra en fases tempranas de desarrollo, felix86 ya es capaz de ejecutar una selección de títulos y programas gracias a un motor de emulación en espacio de usuario con recompilación Just-in-Time (JIT).

Emulación avanzada con extensiones RISC-V

felix86 aprovecha al máximo las capacidades modernas de los procesadores RISC-V. Entre sus características más destacadas se encuentran:

  • Recompilación JIT para traducir código x86/x86-64 a instrucciones nativas RISC-V en tiempo de ejecución.
  • Uso de extensiones vectoriales RVV (RISC-V Vector Extension) para emular instrucciones SSE de x86.
  • Soporte de la extensión B para operaciones de manipulación de bits (como bsr).
  • Compatibilidad opcional con extensiones personalizadas como XThead.
  • Capacidad para usar bibliotecas del sistema anfitrión en algunos casos, lo que mejora el rendimiento.

Instalación sencilla en sistemas Linux

El emulador está diseñado para funcionar en distribuciones basadas en Debian, Ubuntu y derivadas. Para instalar felix86, basta con ejecutar el siguiente script en una terminal:

curl -s https://raw.githubusercontent.com/OFFTKP/felix86/master/src/felix86/tools/install.sh -o /tmp/felix86_install.sh && bash /tmp/felix86_install.sh && rm /tmp/felix86_install.sh

Este script descarga e instala felix86, además de proporcionar una «rootfs» (sistema de archivos raíz) con las librerías necesarias para ejecutar aplicaciones x86/x86-64 dentro del entorno RISC-V.

Una vez instalado, se puede iniciar una shell x86-64 dentro de la rootfs ejecutando:

FELIX86_QUIET=1 felix86 /bin/bash

Desde ahí, el usuario podrá lanzar juegos y programas como si estuviera en un entorno x86 tradicional.

Compatibilidad y limitaciones

Aunque el proyecto está en desarrollo activo, ya cuenta con una lista de compatibilidad disponible en felix86.com/compat. Algunos juegos funcionan correctamente, mientras que otros pueden fallar o requerir ajustes. Para mejorar el rendimiento o evitar errores, se recomienda:

  • Usar FELIX86_ALWAYS_TSO=1 para algunos juegos Unity.
  • Activar FELIX86_ENABLED_THUNKS=glx si se dispone de drivers gráficos x86/x86-64.
  • Mantener los binarios dentro del sistema rootfs descargado o uno personalizado.
  • Tener en cuenta que felix86 no es un entorno seguro (sandbox); se deben ejecutar solo programas de confianza.

El proyecto ha sido probado principalmente en placas con extensiones rv64gv y vector length VLEN=256, como las de SiFive u otras plataformas avanzadas de desarrollo RISC-V.

Objetivos educativos y técnicos

Más allá de la compatibilidad, felix86 también nació como una iniciativa de aprendizaje profundo sobre arquitectura de procesadores, compiladores, llamadas al sistema (syscalls), señales y emulación de bajo nivel. Su autor lo describe como un proyecto desafiante y divertido, con el que busca comprender mejor el funcionamiento interno de x86-64 y RISC-V.

Comunidad y contribución

Los interesados pueden unirse al servidor de Discord del proyecto (discord.gg/TgBxgFwByU) para resolver dudas, compartir pruebas o contribuir al desarrollo. El código fuente está disponible en GitHub:
👉 https://github.com/OFFTKP/felix86

Además, el emulador utiliza herramientas y bibliotecas consolidadas como:

  • FEX para tests
  • Biscuit para generación de código RISC-V
  • Zydis para desensamblado
  • Catch2, fmt, nlohmann/json y toml11 para pruebas, formato y análisis de configuraciones.

Un paso más hacia un ecosistema RISC-V compatible

Proyectos como felix86 son clave para acelerar la adopción de RISC-V como alternativa real a las arquitecturas x86 y Arm. Aunque todavía queda trabajo por delante, la posibilidad de ejecutar software legado —incluidos juegos populares— en una arquitectura abierta y libre de licencias es una muestra del potencial que tiene RISC-V en el futuro del escritorio, la nube e incluso el gaming.

Felix86 aún está en construcción, pero ya está rompiendo barreras.

Scroll al inicio