Felix86: The Emulator That Brings x86 Games and Programs to RISC-V Processors with Linux

The RISC-V community has a new promising tool. It is called felix86, a user-space emulator for Linux that allows running programs and video games designed for x86 and x86-64 architectures on RISC-V processors. Although still in early development stages, it can already run several well-known applications and even some games, opening the door to better compatibility and utilization of the open RISC-V architecture.

What is felix86 and how does it work?

felix86 is a utility designed to emulate x86/x86-64 instructions on RISC-V CPUs using modern techniques like Just-in-Time (JIT) recompilation. This approach dynamically translates x86 code into RISC-V instructions during execution, enabling reasonable performance without full virtualization.

Its main technical features include:

  • Use of RVV vector extensions to execute SIMD instructions like SSE.
  • Compatibility with the B extension for bit manipulation operations.
  • Support for custom extensions such as XThead, if available on the hardware.
  • Ability to leverage native system libraries to boost performance.

This method allows x86 binaries to behave as if they were native applications on a RISC-V system.

Quick and easy installation

Installing felix86 is as simple as running a script in the terminal. It works on Ubuntu, Debian, and derivative distributions:

bash
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

The script downloads and installs the emulator along with a root filesystem (rootfs) containing the necessary libraries for executing x86 programs. Once installed, you can start an emulated terminal with:

bash
FELIX86_QUIET=1 felix86 /bin/bash

From that prompt, you can run games, utilities, or even package managers to install more x86/x86-64 compatible software.

Compatibility, requirements, and recommendations

felix86 is designed to run on 64-bit RISC-V processors that support vector extensions (RVV 1.0) and have a VLEN of at least 256 bits. It鈥檚 optimized for advanced development boards and already has a list of compatible games and applications.

Some key recommendations:

  • The environment is not sandboxed: run only trusted software.
  • For Unity and certain games, setting FELIX86_ALWAYS_TSO=1 may be necessary.
  • If the system has a GPU with x86 drivers, performance can be improved with FELIX86_ENABLED_THUNKS=glx.
  • Logs are stored in /tmp.

By default, the project is quite verbose, but you can suppress output via FELIX86_QUIET=1 or by editing ~/.config/felix86/config.toml.

An educational emulator

The developer, known as OFFTKP, created felix86 as a personal project to learn more about emulation, compiler optimizations, Linux signals, system calls, and CPU architecture. Along the way, they achieved a technical feat: bringing the extensive x86 software ecosystem to an emerging architecture like RISC-V.

felix86 also relies on technologies and libraries such as:

  • FEX for compatibility testing,
  • Biscuit for RISC-V code generation,
  • Zydis for disassembly,
  • and modern libraries like fmt, nlohmann/json, and toml11.

Community and future prospects

Although still actively developed, felix86 already has a small community on Discord (link here) and its source code is publicly available on GitHub:

馃敆 https://github.com/OFFTKP/felix86

The long-term goal is to run more desktop applications and games, including preliminary support for platforms like Steam. While not all titles work yet, progress looks promising.

RISC-V gains momentum

Initiatives like felix86 strengthen RISC-V鈥檚 position as a viable alternative to the closed ecosystems of x86 and Arm. Although still experimental, felix86 demonstrates that bringing the vast software legacy of PCs to an open, flexible, royalty-free platform is possible.

In the future, projects like felix86 could play a key role in the widespread adoption of RISC-V in personal computers, educational settings, and even Linux gaming.

More info: felix86 on messenger.es

Scroll to Top