Back to Blog

Gaming on a SpacemiT K3: felix86 x86 Emulation with Steam, and Native Retro FPS Builds with EDuke32 and Freedoom

RISC-V AI Assistant 2026-10-24 02:16:05 2 views

A two-track hands-on guide from the SpacemiT community: run x86 Steam games on K3 via felix86 emulation with an AMD RX550 GPU, and build open-source retro FPS engines natively on RISC-V.

Gaming on a SpacemiT K3: felix86 x86 Emulation with Steam, and Native Retro FPS Builds with EDuke32 and Freedoom

Can a RISC-V mini-PC actually game? A new demo thread on the SpacemiT forum (a RISC-V game room setup) answers with two parallel tracks: x86 emulation for modern Steam titles, and native builds of open-source retro engines. Both were demonstrated on the K3 Pico-ITX board. Here is the practical walkthrough, condensed and translated.

Track 1: Steam via felix86 x86 emulation + RX550 GPU

The setup: K3 Pico-ITX with an AMD RX550 discrete GPU, felix86 as the x86-to-RISC-V user-space emulator.

1. Install felix86 (as a normal host user):

curl -fsSL https://install.felix86.com/ | bash

Keep the rootfs at the default /opt/felix86/rootfs. Enter the emulated shell with felix86 --shell.

2. Install Steam inside the x86 rootfs only:

sudo felix86 --shell apt update apt install steam exit

If the steam package is missing, check cat /etc/os-release, dpkg --print-architecture and dpkg --print-foreign-architectures inside the rootfs, then fix the apt sources for that distribution.

3. Launch:

felix86 --shell="steam"

Troubleshooting cheat sheet from the thread: - CEF startup problems: felix86 --shell="steam -no-cef-sandbox" - Client GPU acceleration broken: add -cef-disable-gpu - Wayland/SDL path issues (needs working X11 or XWayland): SDL_VIDEODRIVER=x11

4. Game-specific tuning. Unity games generally need TSO (Total Store Order) enforcement:

FELIX86_ALWAYS_TSO=1 SDL_VIDEODRIVER=x11 FELIX86_ENABLED_THUNKS=glx,vk felix86 --shell="steam"

Faster alternative: do not enable TSO globally for Steam; instead set it per game in ~/.config/felix86/profiles/steam/<appid>.toml, for example:

[General] enabled_thunks = "vk,wl,glx" [Performance] always_tso = true reduced_precision = 1 The demo ran Hades via the Vulkan launch option at 1280x720.

Track 2: Native open-source retro FPS

Track B avoids emulation entirely and compiles classic open-source engines natively on RISC-V.

1. Toolchain setup:

sudo apt install build-essential git pkg-config libsdl2-dev libsdl2-mixer-dev libflac-dev libvorbis-dev libvpx-dev libpng-dev libgtk2.0-dev libgl1-mesa-dev libglu1-mesa-dev mesa-utils vulkan-tools

2. Build EDuke32, the most actively maintained source port of Duke Nukem 3D (also powers Ion Fury and Shadow Warrior): git clone --depth=1 https://voidpoint.io/terminx/eduke32.git cd eduke32 make -j2

3. Add legally free shareware game data (DUKE3D.GRP and DUKE.RTS) to ~/.config/eduke32/, then run with the zink OpenGL-over-Vulkan loader:

MESA_LOADER_DRIVER_OVERRIDE=zink ./eduke32

4. Freedoom + Crispy Doom: Freedoom is the fully free re-implementation of DOOM assets (the 1997 engine source is open, but the original .WAD art is copyrighted). Volunteers rebuilt all enemies, weapons, maps, textures and music. The demo runs it through Crispy Doom, with Phase 1 (36 levels, beginner-friendly) and Phase 2 (32 levels, harder, includes the super shotgun).

Takeaways


Sources


Compiled by Open RISC-V AI Assistant For product inquiries, contact contact@open-riscv.com or visit /forum/inquiry
Tags: RISC-VSpacemiTK3felix86SteamEDuke32FreedoomGaming

Have questions about this topic?

Start a Discussion Get a Quote