Steam Deck & Linux guide

Run Recompia on SteamOS and Linux via Proton Experimental, the native glibc 2.35+ runtime, or the pokopia-recomp-linux AppImage.

  • Deck LCD: 50–55 fps
  • Deck OLED: 45 fps vblank lock
  • Native Linux: glibc 2.35+
  • Launch flag: --play
Front view of a Valve Steam Deck handheld PC running SteamOS
Steam Deck handheld (16:10 display, 50–55 fps on LCD and 45 fps vblank lock on OLED)
Advertisement

Three ways to run Pokopia Recomp on Linux & Steam Deck

Linux and SteamOS handheld players have three verified options depending on whether you prioritize Link Play co-op today, zero-Proton native execution, or pre-tuned Steam Deck LCD defaults:

Advertisement
BuildPackage & SizeExecution ModelKey Strengths
Recompia v0.11.1 Stable
Dittobyte/Recompia
PokopiaRecomp-0.11.1-linux-x64.tar.gz (161.3 MB)Launcher AppImage + pkp.exe via Proton ExperimentalFull internet/LAN Link Play, Modtopia .pkmod mods, 45 fps OLED vblank lock, 26–53 fps on Deck.
Recompia v0.12.0-beta.1 Testing
Dittobyte/Recompia (#562)
PokopiaRecomp-0.12.0-beta.1-linux-x64.tar.gz (134.7 MB)Native Linux binary (libpkp_rt.so + SDL3, glibc 2.35+, zero Proton/Wine)Direct POSIX kernel calls, single-range mprotect (3,132 µs → 34 µs), futex waits, Modtopia Browse hub.
pokopia-recomp-linux v0.1.1-linux.2
tinfoil-chewer/pokopia-recomp-linux
PokopiaLauncher-0.1.1-x86_64.AppImage (236.2 MB)Standalone AppImage + tuned AMD RADV/Proton runtime (pkp_rt.dll)~50–55 fps on Steam Deck LCD at 720p, zstd boot shader pack (~10 s microSD boot), View+Menu controller overlay.

Option 1: Recompia v0.11.1 Stable on SteamOS & Linux (Proton Experimental)

  1. Switch your Steam Deck to Desktop Mode, open Steam, and install Proton Experimental under Library > Tools.
  2. Download PokopiaRecomp-0.11.1-linux-x64.tar.gz (161.3 MB) from Download & SHA-256 and extract it into your home folder (internal NVMe SSD is strongly preferred over slow microSD storage).
  3. Run PokopiaLauncher.AppImage inside the extracted folder (double-click or run ./PokopiaLauncher.AppImage in Konsole; if your Linux distribution has no FUSE support, run ./PokopiaLauncher.AppImage --appimage-extract-and-run).
  4. Select your 2.0.1a dump folder and press Set up. On first run it downloads Python and Zig (~100 MB), compiles the game, and translates the shader cache through Proton. You can pause and resume at any time.
  5. To launch directly from Steam Game Mode: in Desktop Mode, click Add a Non-Steam Game, pick PokopiaLauncher.AppImage, and set its Steam Launch Options to --play. (Without --play, the launcher also scales to full screen with touch-friendly controls in Game Mode since v0.10.2-beta.4, #461.)

Option 2: Recompia v0.12.0-beta.1 Native Linux (No Proton, glibc 2.35+)

Shipped in v0.12.0-beta.1 (#562), Recompia now compiles a true native Linux binary linked against libpkp_rt.so and SDL3:

  • System requirements: any Linux x86_64 distribution with glibc 2.35 or newer (Ubuntu 22.04+, Debian 12+, Fedora 36+, Arch/CachyOS, Bazzite, and SteamOS 3) plus standard host graphics libraries (libvulkan, libEGL, libGL, libGLESv2).
  • Why native Linux is leaner: runtime/src/os/ talks directly to POSIX files, memory mappings, sockets, and threads without Wine or wineserver. Page write tracking arms an entire memory range in a single mprotect call (cutting a 10 MiB arm from 3,132 µs down to 34 µs), and timed address waits use Linux futexes so the game’s ~100 µs GPU-fence polls no longer spin two CPU cores.

Option 3: tinfoil-chewer/pokopia-recomp-linux (v0.1.1-linux.2)

Maintained at github.com/tinfoil-chewer/pokopia-recomp-linux, this community Linux edition packages a 236.2 MB standalone AppImage (PokopiaLauncher-0.1.1-x86_64.AppImage) tested on an RTX 4070 Linux desktop, a Steam Deck LCD, and an AMD Steam Machine:

  • 50–55 fps on Steam Deck LCD: detects SteamDeck=1 automatically, enables the game’s 720p handheld mode, sleeps short SleepThread waits so the CPU and GPU share the Deck’s 15 W APU power budget efficiently, and invokes Steam’s on-screen keyboard via steam://open/keyboard for name entry.
  • 10-second microSD boot shader pack: packs the boot shaders into a single zstd archive after the first start, cutting startup shader loading on a microSD card from ~60 seconds down to ~10 seconds.
  • View + Menu gamepad overlay: hold View + Menu together on the Steam Deck to open the Dear ImGui settings overlay and navigate with the D-pad.

Steam Deck OLED 45 fps vblank lock & AMD handheld tips

  • 16:10 full-screen fit: Steam Deck and Legion Go S screens are recognized automatically so 16:10 displays fill edge to edge with no black bars and controller glyphs stay locked on screen.
  • Steam Deck OLED 45 fps vblank lock (v0.11.0): on a 90 Hz Steam Deck OLED display, enable Vsync, set the frame rate limit to 45, and add vblank_lock = 1 under [latency] in pkp.ini so every frame holds for exactly two display refreshes without uneven frame pacing.
  • Fixed "graphics device was lost" (v0.11.0 #531, #533): Ocelot fixed the random Vulkan device loss on Steam Deck RADV and the matching full freeze on Linux NVIDIA drivers by keeping host-visible graphics memory synchronized and guarding compute light-list loops ([nvn] loop_guard).
  • Submitting handheld telemetry: after playing for ~20 minutes on a Steam Deck, ROG Ally, or Legion Go, open Settings > Testing and click Copy handheld report (#443) to copy an anonymized summary of your driver, memory, and frame times for GitHub bug reports.

Recompia uses SDL3 for native gamepad input, rumble, motion controls, L3+R3 F1 overlay access, and 6 Kenney button icon themes. These controllers pair cleanly on Windows, Linux, SteamOS and macOS:

ControllerBest For in Pokopia RecompHardware AdvantageLink
GameSir Cyclone 2Island building & camera aimTMR sticks, Hall linear/microswitch triggers, gyro + 1000 Hz dongleView on Amazon
8BitDo Ultimate 2 WirelessSwitch layout & SteamOS dockTMR sticks, 2.4 GHz charging dock, instant Switch/XInput toggleView on Amazon
Sony DualSensePlayStation glyphs & USB motion6-axis IMU + native PlayStation button prompt theme in F1 menuView on Amazon
Xbox Wireless ControllerWindows 10/11 & Link Play co-opNative XInput + View+Menu hold to quit or open handheld overlayView on Amazon

As an Amazon Associate, this site earns from qualifying purchases.

Advertisement
Desktop gaming PC workstation with dual monitors and illuminated tower
Windows 10/11 x64 desktop workstation for Recompia compilation and 4K play
Open road alongside purple lavender fields in Provence under daylight
Wide-aspect scenery matching Recompia 16:10, 21:9 and 32:9 display presets
Side profile of an Apple MacBook laptop resting on a desk
Apple Silicon macOS ARM64 build running natively via Metal and MoltenVK

Common questions

Why does PokopiaLauncher.AppImage fail to open when double-clicked on Ubuntu or Fedora?

Some modern Linux distributions do not preinstall libfuse2 for AppImages. Either install fuse/libfuse2 or run ./PokopiaLauncher.AppImage --appimage-extract-and-run from a terminal.

Should I run first-time Set up on my desktop PC or directly on the Steam Deck?

You can do either: running Set up directly on the Steam Deck takes ~1.25 to 2 hours (keep it plugged into AC power), whereas running Set up on a fast desktop Linux or Windows PC takes ~20 minutes total and you can then copy the finished game folder onto your Steam Deck’s internal SSD.

How do I stop Proton from running आउट of memory during shader translation?

Fixed in v0.11.0 (#530) and v0.10.2-beta.3 (#455): if the shader translator exits during Set up under Proton ("Translating shaders: 0 of 99012"), the launcher automatically retries that batch with workstation memory management and 2 jobs, and compares pagefile commit under Proton.