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.
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 exitIf 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=x114. 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 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 -j23. 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 ./eduke324. 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).