8BitDo Ultimate 2C Wireless Controller
Hall-effect sticks and L4/R4 bumpers with low-latency 2.4G dongle for 60 FPS Sync Attacks and Legion positioning.
Astral Chain Recomp ships as a native 64-bit Linux executable packaged inside Astral-Chain-Setup-1.18.0-x86_64.AppImage (243,231,224 B). Instead of running Windows binaries through Wine or Proton, it talks directly to SDL3, PipeWire/ALSA, and Mesa RADV or NVIDIA Vulkan 1.3 drivers, automatically applying dedicated memory and resolution defaults when a Steam Deck LCD (Jupiter) or OLED (Galileo) board is detected.

In runtime/cfg.c, device_profile = auto checks SteamDeck=1 and /sys/class/dmi/id/board_name for Jupiter or Galileo, switching 15 defaults before the first frame.
| INI Key | Steam Deck Default | Desktop Default | Why It Matters on Handhelds |
|---|---|---|---|
[display] window_size & output_res | 1280x800 / 1280x720 | 1920x1080 / 1920x1080 | Internal render targets must stay on the 16:9 32n x 18n grid (1280x800 loses the Vulkan device); aspect = wide expands the camera to fill the 16:10 panel. |
[frame rate] fps & vk_present | 30 / fifo | 60 / mailbox | Paces cleanly against the Deck compositor for battery life; switch fps = 60 live in F1 when plugged in or using FSR 3. |
[performance] astc_bc & tex_mip_skip | bc1 / 1024 | auto / 0 | Re-encodes opaque 4x4/6x6/8x8 ASTC textures to BC1 (4 bpp) and drops top mips above 1024px (~200 MiB saved) to stay inside the shared 16 GB APU pool. |
[performance] tex_cache_mb & tex_vram_pressure | 512 / 70 (%) | 0 (unlimited) / 85 (%) | Caps resident texture memory and starts background eviction early before SteamOS triggers an out-of-memory reset. |
[display] shadow_res, shadow_scale, aniso | 512 / 1 / game | game / 2 / auto (16x) | Halves local shadow maps and keeps the 2048x2048 sun map at 1x to conserve RDNA 2 bandwidth. |
[performance] cpu_boost | 0 (disabled on Deck) | auto (enabled on Linux PC) | Deck CPU and GPU share one APU power budget; pinning CPU clocks high starves the RDNA 2 GPU during heavy particle combat. |
Download Astral-Chain-Setup-1.18.0-x86_64.AppImage in Desktop Mode, verify its SHA-256 hash (0427ce5bff08449c...), and make it executable via chmod +x (or Dolphin -> Properties -> Permissions). Run the AppImage, choose your 1.0.0 base, 1.0.1 update, and prod.keys, and install to an ext4 path with at least 25 GiB free. Afterward, right-click the generated astralchain binary inside your install folder and choose Add to Steam (do not force Proton compatibility!).
When docking your Steam Deck to a 1080p or 4K TV, press F1 -> Display (or edit astralchain.ini) to set output_res = 1920x1080, operation_mode = docked, and upscaling = fsr3 (balanced or quality). Note that SteamOS updates Mesa RADV frequently and gives each non-Steam shortcut its own MESA_SHADER_CACHE_DIR; the port tracks the driver version in shader-prepared-driver.txt, and you can pre-warm manually anytime with ./astralchain --warm-shaders.
Arch, Fedora, Ubuntu, Bazzite, CachyOS, and Nobara run the exact same native x86_64 build without Wine overhead.
Release 1.7.1 eliminated an extra compositor frame delay under Linux Wayland sessions, cutting input latency and lifting frame rate. On KDE Plasma 6 or GNOME Wayland sessions with color management active, hdr = 1 exposes full 10-bit HDR10 output.
Desktop Linux defaults to powersave or ondemand governors that down-clock between short bursts of Horizon worker threads. cpu_boost = auto requests performance via power-profiles-daemon or tuned-ppd, sets kernel utilization clamp, and uses 1 ms thread polling.
Because NVIDIA NGX and Intel XeSS DLLs in this port are Windows-only, set upscaling = fsr3 on Linux for sharp temporal AA and upscaling. On ROG Ally / Bazzite handhelds, save at intermissions before deep suspend (tracked upstream in issue #108).
Pre-configured below with the Steam Deck / Linux Handheld hardware profile, 1280x800 (16:10) display mode, and 30 FPS Battery Saver preset; switch to Balanced 60 FPS + FSR 3 for plugged-in sessions.
# astralchain.ini - place next to astralchain.exe (or astralchain on Linux)
[frame rate]
fps = 60
realtime = 1
cloth_realtime = 1
highfps_fix = 1
[performance]
async_preempt = 1
free_cores = 0
timer_1ms = 1
astc_bc = auto
tex_mip_skip = 0
gpl = 1
vk_recorder = 1
vk_dyn_a2c = 1
[display]
device_profile = desktop
fullscreen = 1
window_size = 2560x1440
output_res = 2560x1440
aspect = wide
upscaling = dlss
upscaling_quality = quality
anti_aliasing = smaa
ao = gi
aniso = auto
shadow_scale = 2
draw_distance = 150
hdr = 0
[language]
operation_mode = docked
menu_lang = en
[input]
pad_layout = auto
prompts = auto
motion = 1
rumble = 1
rumble_strength = 130
rumble_triggers = 0
stick_deadzone = 8
# Place NVIDIA DLSS SDK nvngx_dlss.dll next to astralchain.exe:
copy nvngx_dlss.dll "Astral Chain
vngx_dlss.dll"
# Optional AC_* environment overrides (override astralchain.ini for one run):
AC_FPS=60 AC_UPSCALING=dlss AC_AO=gi ./astralchain
# Rebuild driver shader cache after a GPU driver update:
astralchain.exe --warm-shaders
# In-game shortcuts:
# F1: Settings menu | F10 (or L+R then -/+): Perf overlay | F11: Fullscreen | F12: No-HUD
Keep output_res on a 16:9 32n x 18n grid (1280x720, 1920x1080, 2560x1440, 3840x2160); aspect = wide expands the camera to 16:10, 21:9, or 32:9 without losing the Vulkan device.
Astral Chain Recomp uses SDL3 for low-latency gamepad input, rumble curves, gyro aiming, back paddles, and automatic Xbox or PlayStation prompt detection.
Hall-effect sticks and L4/R4 bumpers with low-latency 2.4G dongle for 60 FPS Sync Attacks and Legion positioning.
Drift-free Hall sticks, physically swappable ABXY faceplates (pad_layout = xbox or nintendo), and motion gyro via SDL3.
Symmetrical dual-stick layout with Switch/X-Input modes, motion aiming for Bow Legion, and rear paddles (`lpaddle1`/`rpaddle1`).
TMR electromagnetic sticks and 1000 Hz polling for tight 360-spin and Perfect Dodge input windows on Windows and Linux.
Affiliate disclosure: As an Amazon Associate, astralchainrecomp.wiki earns from qualifying purchases at no added cost to you.
Native ELF execution, 16:10 aspect handling, rear paddles, and FUSE2 tips.
No! Leave Force the use of a specific Steam Play compatibility tool unchecked. Astral-Chain-Setup-1.18.0-x86_64.AppImage produces a native Linux x86_64 ELF binary (astralchain) that runs faster and cleaner directly on SteamOS than the Windows .exe under Proton.
Installations created before release 1.7.1 wrote desktop 1080p defaults onto Steam Deck, overloading the APU. On first boot of 1.7.1+, a one-time migration (deck_res_migrated = 1) resets output_res to 1280x720 and window_size to 1280x800; any manual changes you make afterward stick.
Either assign L4-R5 to game actions inside Steam Input per-game controller settings, or bind them directly in astralchain.ini under [input] using SDL3 paddle tokens: pad:lpaddle1, pad:rpaddle1, pad:lpaddle2, and pad:rpaddle2.
Standard AppImage v2 runtimes load libfuse.so.2. Install fuse2 (Arch/CachyOS) or libfuse2t64 (Ubuntu 24.04+), or extract and run without FUSE via ./Astral-Chain-Setup-1.18.0-x86_64.AppImage --appimage-extract-and-run.