FEX-Emu Is Working On Speedy x86/x86_64 Games Support On AArch64, Including Proton

Written by Michael Larabel in Linux Gaming on 6 February 2022 at 07:19 AM EST. 23 Comments
LINUX GAMING
While the Apple M1 SoC is a great piece of hardware, a large part of what has made Apple Silicon so successful with their newest Macs has been their Rosetta 2 software for dynamically translating x86/x86_64 software to run well on these 64-bit Arm systems. Existing applications and games optimized for prior Intel Macs continue running generally in excellent shape on their newest hardware thanks to Rosetta 2. While there is the ongoing Linux bring-up work for Apple Silicon on Linux, the open-source world doesn't currently have that advantage of a compelling Rosetta 2 alternative but the FEX-Emu project hopes to change that outlook.

There is obviously QEMU as well as other software like Box86/Box64 but it hasn't been as fast or trouble-free as Apple's Rosetta 2 for enjoying x86/x86_64 software on AArch64. Linux users do have the advantage of largely using open-source software that generally can target multiple architectures, but for all the proprietary software out there, software not yet well optimized for modern Arm instruction extensions, and especially commercial games there isn't viable AArch64 support at this time. FEX-Emu aims to be the compelling open-source solution for running x86/x86_64 binaries on AArch64 that is performant enough for handling games and advanced enough to handle Linux games, including those running under Valve's Steam Play / Proton. FEX-Emu is also designed to efficiently forward calls onto the host OpenGL driver and other components too.

FEX-Emu is being presented today as part of this weekend's FOSDEM 2022 event. In marking the occasion, FEX-2202 was also released as the newest version of this emulator. FEX-Emu developer Ryan Houdek who is also a Dolphin-Emu developer GameCube/Wii emulator developer is the one presenting at FOSDEM this afternoon on this fast(er) x86 emulation for AArch64.

FEX-Emu relies upon JIT'ing to an IR that is then executed efficiently on AArch64. FEX-Emu wraps around all Linux 5.0 to 5.16 era system calls for the guest coverage. With the new FEX-2202 release it has started supporting some SSE 4.2 instructions, building upon the existing SSE 4.1 support. However, AVX/AVX2 support isn't yet handled among other newer instruction set extension for dealing with modern games.


FEX-Emu is still working on speedier code generation, fuzzing, more library thunking, and completing its Proton / Pressure-Vessel support. With FEX-2202 beyond the initial SSE4.2 work there is also Pressure-Vessel hang fixes as another step towards being able to enjoy Valve's Proton on AArch64 plus many other bug fixes.

Those wishing to learn more about FEX-Emu with hopes of allowing Valve's Steam Play / Proton to run on AArch64 along with other modern x86/x86_64 software for Linux Arm hardware, see the FOSDEM presentation. The project is hosted at FEX-Emu.org and GitHub.

Update: The FEX-Emu presentation from FOSDEM 2022 is embedded below.

Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week