felix86 is a Linux userspace emulator that allows you to run x86-64 Linux programs on RISC-V processors
Note
felix86 has not fully released yet. There are no compiled binaries available for download.
If you'd like to aid with development, please check the compilation and usage guide as well as the developer tips.
- Just-in-Time (JIT) recompiler
- Uses the RISC-V Vector Extension for SSE instructions
- Utilizes the B extension, if available, for bit manipulation instructions like
bsr
- Supports a variety of optional extensions, such as XThead custom extensions
felix86 is in the very early stages of development.
A compatibility list can be found here: https://felix86.com/compat
felix86 relies on several great projects:
- FEX's comprehensive unit test suite
- Biscuit for RISC-V code emission
- Zydis for decoding and disassembly
- Catch2 for unit testing
- fmt for string formatting
- nlohmann/json for JSON parsing
- toml11 for TOML parsing
felix86 was started for several reasons, including:
- Gaining a deeper understanding of x86-64, RISC-V, Linux, and high-level emulation
- Exploring optimizing compilers and JITs (SSA, register allocation, optimization passes, etc.)
- To learn more about low level details, such as signals, syscalls, program loading
- Taking on a fun and challenging project
- Panda3DS, a 3DS emulator for Windows, macOS, Linux, and Android
- shadPS4, one of the leading PS4 emulators
- ChonkyStation3, experimental HLE PS3 emulator for Windows, MacOS and Linux