Gaming on ARM with FEX: Translating x86_64 Syscalls for Fun and Pain

4 months ago 15

If you don’t know about FEX, it’s a bit of Scandinavian-level witchcraft that lets you run applications designed for Intel and AMD CPUs on ARM. So let’s put it on a semi-haunted 12-core ARM SBC, feed it an RX570, crack open a copy of Steam, and see what happens.


HARDWARE

For this questionable application of judgment, I’m going to be using the Radxa Orion O6, powered by a 12-core ARM V9 beasty from CIX, packing 16 GB of RAM.

Pixels will be slung courtesy of a vintage AMD RX570 8 GB GPU rescued from the mines.

Orion O6 and RX580

THE “PLAN”

N̴e̷e̷d̴ ̸i̸ ̷s̵a̴y̴ ̵m̸o̵r̷e̵?

Showing the steps needed to convert X86 games to ARM

BIOS / UEFI UPDATE

When you power on your O6 take a peek in the upper left corner. If that number is below 0.3.0-1 you get to learn how to do a BIOS update!

Radxa makes this relatable painless by providing a Debian 12 pre‑installed image that includes the needed bits. Give it a download, extract the *.img and write it to a flash drive.

Pop that critter in one of the USB3 holes, apply some electrons and start smashing the Esc key.

Orion O6 boot screen

Now head down to Boot Manager then select your flash drive from the list.

Orion O6 BIOS
Orion O6 BIOS

Now you can select the option to install the latest firmware, sit back, relax, and think of all the things that could go wrong during a BIOS upgrade for the next 15 or so seconds.

Orion O6 BIOS updater

ACPI BOOT

In the BIOS, head over to Device Manager > O/S Hardware Description Selection and change that business to ACPI.

ACPI BIOS settings
ACPI BIOS settings
ACPI BIOS settings

UBUNTU 25.04

Grab a copy of Ubuntu 25.04 for ARM, write it to a flash drive, and pop it into the Orion O6. Press Esc, select Boot Manager, and point it at your flash drive.

Then it’s time for a regular, ordinary Ubuntu install. Give it a username, set a timezone, pick your storage device and find something to do for the next five minutes.

Ubuntu install
Ubuntu install
Ubuntu install

INSTALLING FEX

Once booted into Ubuntu 25.04 it’s time to crack open a terminal and get to work.

Up first is installing curl.

sudo apt install curl
Installing curl

Now run the automagic FEX installer script.

curl --silent https://raw.githubusercontent.com/FEX-Emu/FEX/main/Scripts/InstallFEX.py --output /tmp/InstallFEX.py && python3 /tmp/InstallFEX.py && rm /tmp/InstallFEX.py

Pick your RootFS (I used Arch btw)

Installing FEX

And extract the squashfs.

Installing FEX

That’s that, FEX is ready to transmogrify databits.


STEAM

This abomination downloads Steam, unpacks it, and creates a launcher. You’re welcome.

mkdir -p ~/steam && mkdir -p ~/steam/tmp && cd ~/steam/tmp && wget https://cdn.cloudflare.steamstatic.com/client/installer/steam.deb && ar x steam.deb && tar xf data.tar.xz && rm ./*.tar.xz ./steam.deb && mv ./usr/* ../ && cd ../ && rm -rf ./tmp/ && bash -c 'cat <<EOF > steam && chmod +x steam && sudo mv steam /usr/local/bin/ #!/bin/bash ~/steam/bin/steam \$@ EOF'

Now we can launch Steam using FEXBash.

FEXBash steam
Installing Steam on ARM
Installing Steam on ARM
Installing Steam on ARM
Installing Steam on ARM

Sometimes Steam gets stuck loading user data. Don’t fight it, just reboot the system and launch Steam again using FEXBash.

Installing Steam on ARM

Eventually you will be rewarded with the Steam client.

Running Steam on ARM

The only thing left to do at this point is to enable Steam Play for all the things.

Running Steam on ARM

GAME PERFORMANCE

I wanted to give FEX a proper challenge, so I cranked things up to 1080p medium. I also used FSR when available, because that’s exactly how I’d game on an RX570 in 2025.

Portal 2 ran like a total beast, hitting over 100 FPS. Half-Life 2 and DOOM 2016 hovered around 60 FPS. Shadow of the Tomb Raider and Control had some ups and downs but mostly stayed above 30 FPS, while The Witcher 3 and God of War usually hung out in the low to mid 40s.

HL-2
Portal 2
Witcher 3
SOTTR
Control
God of War
Doom 2016

Then Bayonetta showed up and things got a wee choppy 🙂

Bayonetta

Be sure to check out the Playable Compatibility category on the FEX wiki for a list of supported games.


VERDICT

The work coming out of FEX and Box64 is weapons-grade neat. With ARM making its way to the desktop, having tools like these will keep our existing game libraries alive and twitching. It reassuring to see the groundwork already in place and actively improving.

As for the Radxa Orion O6, I’m officially upgrading it from haunted to getting there-ish. It’s booting generic ARM images from Ubuntu and Fedora, but PCIe Gen4 support still needs work, and getting the integrated GPU bits working on anything outside of the official Debian image is still unadulterated nightmare-fuel.


Some posts contain affiliate links. If you click on an affiliate link and later make a purchase, I may receive a small commission. Money earned via affiliate links helps to keep this site up and running.

Have questions about your Linux setup? Ask in the forums.

Read Entire Article