DLSS, XeSS, FSR 3, Ultrawide & HDR10 Guide

On Nintendo Switch, Astral Chain topped out at dynamic 900p/30 FPS with basic post-process SMAA, zero ambient occlusion, and SDR output. Astral Chain Recomp adds reconstructed motion vectors for NVIDIA DLSS, Intel XeSS, and AMD FSR 3, native 4K internal budgets, 16:10 to 48:9 ultrawide camera projection, HDR10 paper-white controls, and screen-space radiance cascade bounce lighting.

Native 2D HUDTemporal upscalers reconstruct 3D scene only
310 -> 1100 MiBAutomatic 4K render-target & heap scaling
ao = gi (1.18.0)SSGTAO + radiance cascade bounce lighting
GeForce RTX 3090 triple-fan graphics card representing DLAA, DLSS Quality, and 4K HDR10 Vulkan rendering
Temporal upscalers execute before the game composites its 2D UI plane, keeping health gauges, IRIS telemetry, and text razor-sharp even in Performance mode.

DLSS, Intel XeSS & AMD FSR 3 setup compared

Because PlatinumGames' original engine did not export temporal motion vectors, @capibawa and captainj-sparrow engineered motion-vector extraction across releases 1.10.0 and 1.11.0.

UpscalerOS & GPU SupportRequired FilesTechnical Behavior
NVIDIA DLSS / DLAA (upscaling = dlss)Windows 10/11 + NVIDIA RTX GPUPlace nvngx_dlss.dll from NVIDIA's DLSS SDK next to astralchain.exe before bootLoaded via NGX at startup; native mode runs full-resolution DLAA. Hotfix 1.10.1 resolved NVIDIA DLAA initialization edge cases.
Intel XeSS (upscaling = xess)Windows 10/11 + modern Intel, AMD, or NVIDIA GPUlibxess.dll (already placed next to astralchain.exe by setup) + Microsoft VC++ x64 runtimeCosts ~5-6 ms per frame at 2560x1440 in native (Native AA) mode on Intel Arc 140T; eliminates sub-pixel grate and neon shimmer.
AMD FSR 3 (upscaling = fsr3)Windows & Linux x86_64 + any Vulkan 1.3 GPUBuilt directly into the executable (no external DLL required)Recommended universal choice on Linux, SteamOS, and AMD Radeon cards; also acts as automatic fallback when upscaling = auto runs without RTX.
AMD FSR 1 Window Scale (upscaler = fsr)All platforms when window_size > output_resBuilt in (vk_fsr.c EASU + RCAS, sharpness = 80)Spatial pass used when displaying e.g. a 1440p render on a 4K monitor in SDR; sharpens the 3D scene prior to HUD composition.

Quality ratios & automatic 4K output

upscaling_quality offers five internal 3D scene scales: native (100% DLAA / Native AA), quality (~67%), balanced (~58%), performance (~50%), and ultra_performance (~33%, clamped to at least 640x360). When output_res = auto and an upscaler starts at boot, the port automatically raises output_res to 2560x1440 or 3840x2160 to match your monitor (capping at 1440p on GPUs with <=4.5 GB VRAM).

Render-target & GRAPHIC BUFFER heap growth

Vanilla Astral Chain carved a fixed 310 MiB render-target budget and 143 MiB GRAPHIC BUFFER heap, which crashed the allocator during 4K combat (fixed in 1.14.2). The runtime now expands render-target memory to 545 MiB at 1440p and 1100 MiB at 4K, while growing GRAPHIC BUFFER by 8 bytes/pixel above 1080p.

Ultrawide (16:10 to 48:9), bounce-light GI & HDR10

Three post-release graphics systems sharpen Ark's neon streets without breaking PlatinumGames' art direction or UI framing.

aspect = wide (1.12.0+)

True Hor+ Ultrawide & 16:10

With aspect = wide (enabled by default), any window wider than 16:9 (21:9, 32:9, up to 48:9) widens the 3D camera lens and visibility cone while keeping internal render targets on a safe 16:9 grid. Gameplay HUD blocks in hud2 (health, Legion gauge, minimap, items) slide cleanly to screen corners, pause menus hold 16:9 proportions in the center, and pre-rendered 16:9 movies automatically pillarbox.

ao = gi (1.15.0 - 1.18.0)

Emissive SSGTAO & Bounce Light

Computed at half resolution from the depth buffer before transparents and bloom, ao = low and high run emissive-aware SSGTAO that respects neon signage and distance fog (1.15.0/1.17.0). New in 1.18.0, ao = gi adds screen-space radiance cascades: sunlit concrete or glowing Astral Plane floors bounce colored light onto nearby characters (~0.9 ms extra over high on Arc 140T).

hdr = 1

HDR10 Separate Game & HUD Nits

Enable Use HDR in Windows 11 (or run a color-managed Wayland session on Linux) and set hdr = 1. Set hdr_peak_nits to your OLED or Mini-LED peak brightness (e.g. 800 or 1000), keep hdr_game_nits = 203 for reference paper white, lower hdr_ui_nits (e.g. 160-203) to protect OLED pixels from static HUD elements, and tune hdr_hue = 80 for natural highlight desaturation.

Build an HDR10, Ultrawide, or DLSS INI profile

Pre-loaded below with the HDR10 (1000 nits / 203 UI) + GI preset on RTX 1440p; switch to Ultrawide 21:9 or 32:9 to generate your exact configuration.

Generated astralchain.ini
# 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
AC_* overrides & shader warm
# 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.

Controllers for dual-stick Legion combat

Astral Chain Recomp uses SDL3 for low-latency gamepad input, rumble curves, gyro aiming, back paddles, and automatic Xbox or PlayStation prompt detection.

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.

View on Amazon

GameSir Super Nova Hall-Effect Gamepad

Drift-free Hall sticks, physically swappable ABXY faceplates (pad_layout = xbox or nintendo), and motion gyro via SDL3.

View on Amazon

8BitDo Pro 2 Bluetooth Gamepad

Symmetrical dual-stick layout with Switch/X-Input modes, motion aiming for Bow Legion, and rear paddles (`lpaddle1`/`rpaddle1`).

View on Amazon

GuliKit KK3 Max Wireless Controller

TMR electromagnetic sticks and 1000 Hz polling for tight 360-spin and Perfect Dodge input windows on Windows and Linux.

View on Amazon

Affiliate disclosure: As an Amazon Associate, astralchainrecomp.wiki earns from qualifying purchases at no added cost to you.

Upscaling, ultrawide & HDR10 questions

Details on nvngx_dlss.dll placement, Linux FSR 3, and HDR calibration.

Why doesn't DLSS appear or activate when I switch to it mid-game?

The runtime loads NVIDIA NGX (nvngx_dlss.dll) and Intel XeSS (libxess.dll) only at process startup when upscaling = dlss, auto, or xess is set. Place nvngx_dlss.dll next to astralchain.exe, select DLSS, and restart the game once.

Can I use DLSS or Intel XeSS on Linux or Steam Deck?

Currently dlss and xess are Windows-only in Astral Chain Recomp. On Linux and SteamOS, select upscaling = fsr3, which is compiled directly into the native Linux binary and delivers sharp temporal reconstruction across RADV and NVIDIA drivers.

Does color_preset (vivid / clarity) affect HDR10 output?

No. The SDR color adjustments (color_preset, color_brightness, color_contrast, color_saturation, color_gamma) bypass execution when hdr = 1 is active; use hdr_peak_nits, hdr_game_nits, hdr_ui_nits, and hdr_hue instead.

How much GPU performance does ao = gi cost compared to ao = high?

In upstream profiling at 1472x828 internal scene resolution on an Intel Arc 140T iGPU, ao = gi adds roughly 0.9 ms per frame over ao = high. Desktop RTX and RX 6000/7000 GPUs handle gi easily at 60 FPS; handhelds and entry GPUs should stick to low or high.