FEX allows you to run x86 applications on ARM64 Linux devices, similar to Qemu-user and Box64. It offers wide compatibility with both 32-bit and 64-bit binaries, and can be used with Wine/Proton to play Windows games.
It supports forwarding API calls to host system libraries such as OpenGL or Vulkan to reduce emulation overhead. An experimental code cache helps reduce stuttering in games as much as possible. Furthermore, a per-app configuration system allows performance changes per game, for example bypassing expensive memory model emulation. We also provide a user-friendly FEXConfig GUI to locate and change these settings.
On the technical side, FEX has an advanced binary recompiler that supports all modern extensions of the x86(-64) instruction set, including AVX/AVX2. The heart of this recompiler is a custom IR that allows us to generate more optimized code than the traditional Splatter JIT. A comprehensive system call translation layer takes care of the differences between the emulated and host operating systems and even implements specific features like seccomp. A modular core enables FEX to be used as a WoW64/ARM64EC backend in Wine.
try it out
news
FEX 2511 tagged
You would think that by doing this month after month we would eventually run out of things to work on, but in true emulator fashion the work never ends. Let’s see what’s changed for this month’s release!
read more
FEX 2510 tagged
We’re just going to launch this little release and be on our way. Some interesting things may happen this month, read and know!
read more
FEX 2509 tagged
After last month’s massive improvements, this release will look pretty good in comparison. We still have a lot of work to do though, so let’s dive deeper.
read more
Older posts