XC2 Recomp vs XCX Recomp: Architecture & Lineage

How AksharDP/xc2-recomp (v0.1.12) and jmars125/xcx-recomp (v0.1.21) adapt the same ARM64 static lifter and Vulkan 1.3 runtime for two generations of Monolith Soft’s Switch engine.

  • XC2 Recomp: v0.1.12 (329 stars)
  • XCX Recomp: v0.1.21 (313 stars)
  • Ancestor: valentderah/totk-pc-recomp
  • License: MIT (zero Nintendo assets)
Natural green emerald crystal prism embedded in dark mineral matrix
Hexagonal emerald crystal prism in matrix, echoing the Aegis Core Crystal geometry

Side-by-side comparison: XC2 Recomp vs XCX Recomp

AksharDP/xc2-recomp was forked from jmars125/xcx-recomp in November 2026 to bring Xenoblade Chronicles 2 (2017) onto the same static recompilation foundation built for Xenoblade Chronicles X: Definitive Edition (2025). While both projects share the installer architecture, SDL3 input layer, and NVN-to-Vulkan 1.3 command processor, each targets different Title IDs, archive layouts, and graphics pipelines:

AttributeXC2 Recomp (AksharDP/xc2-recomp)XCX Recomp (jmars125/xcx-recomp)
Target GameXenoblade Chronicles 2 (Nintendo Switch, 2017)Xenoblade Chronicles X: Definitive Edition (Nintendo Switch, 2025)
Required Update & DLCUpdate 3.0.1 (US/EU 0100E95004038000) or 3.0.0 (JP 0100F3400332C000) + 7 optional DLC packsUpdate 2.0.0 + optional Exploration Support Package DLC
Latest Release & Datev0.1.12 (November 9, 2026) · 13 releasesv0.1.21 (November 12, 2026) · 40 releases
Windows x64 PackageXC2-Setup-0.1.12-windows.zip (182.3 MB)XCX-Setup-0.1.21-windows.zip (145.3 MB)
Linux / Steam DeckXC2-Setup-0.1.12-linux.AppImage (218.7 MB) · native support since v0.1.6XCX-Setup-0.1.21-linux.AppImage (229.8 MB) · Linux candidate builds active
Setup & Final Disk Space~25 GiB free during setup · ~20 GiB after~36 GiB free during setup · ~20 GiB after
Executable & Configxc2.exe / xc2 · xc2.ini · xc2-install.jsonxcx.exe / xcx · xcx.ini · xcx-install.json
Framerate & Physics60 FPS default (30–360 FPS) + v0.1.11 jiggle-bone/hair/cloth bounce fix + cloud sea frame-time scroll60 FPS default (30–360 FPS; above 60 experimental) + 60 FPS mod patches by Fl4sh_ & StevensND
Upscaling & HDRAMD FSR 1 spatial + AMD FSR 3.1.6 / FSR 4.1.2 temporal upscaling + FSR Frame GenerationAMD FSR 1 spatial + HDR10 output with peak, game, and HUD brightness controls
Mod & Cheat SystemSwitch emulator / Atmosphere RomFS (aoc1:/), .pchtxt/.ips ExeFS patches, 4F5C96E2D97F45AC.txt cheats, built-in God mode & Insta killExperimental Lua source packages (F1/Esc → Mods) + trusted native providers
RecompLauncher Supportrecomplauncher.com/game/xc2-recomp-2recomplauncher.com/game/xcx-recomp + Recomp Achievements

Why XCX-specific keys in xc2.ini do nothing in XC2

Because XC2 Recomp inherited its configuration parser from XCX Recomp, a few legacy keys mentioned in older community posts belong exclusively to Xenoblade Chronicles X: Definitive Edition:

  • realtime, cloth_realtime, and highfps_fix under [frame rate] are XCX settings and have no effect in xc2.ini (documented on line 15 of xc2.ini.example).
  • Instead, XC2 Recomp implements its own dedicated high-framerate fixes directly in its patch table (recomp/patches-v301.txt), including frame-time cloud sea scrolling (v0.1.1) and jiggle-bone/cloth/hair physics preservation above 30 FPS (v0.1.11).
  • Similarly, patches-upd.txt and the v121/v143 patch tables in the repository belong to XCX and are unused during XC2 builds.

Shared static recompilation architecture

Both projects trace their technical lineage to TotK Recomp (valentderah/totk-pc-recomp) and draw from open-source Switch research including LAS Recomp, MacNativeGames, SavageWindRecomp, Ryujinx, deko3d, hactool, and Switchbrew:

AOT ARM64 Lifter
recomp/gen.py disassembles the Switch ExeFS main and rtld/sdk modules and emits C functions that preserve guest register state while compiling to native x86-64 machine code with AVX2 (-march=x86-64-v3).
Guest Memory & Vulkan Pools
Maps guest memory pools to Vulkan via VK_EXT_external_memory_host (memory = import) or per-frame mirror copies (memory = mirror) managed by Vulkan Memory Allocator (VMA).
Kernel & Thread Scheduling
Emulates Switch Horizon OS SVCs and virtual cores in user space, adding async_preempt = 1 and core_float = 1 so worker threads pinned to virtual core 1 can float across host CPU cores during town streaming.
Audio, Video & Compression
Links SDL3 for windowing/audio/gamepad input, Dear ImGui for the F1 settings menu and F10 performance overlay, libopus for audio streams, libvpx for .webm cutscenes, and native host Zstandard (zstd_native = 1) for fast asset decompression.

XC2 Recomp uses SDL3 controller input with automatic Nintendo, Xbox and PlayStation button prompt generation (plus custom rumble curve and Xbox impulse trigger options):

ControllerBest For in XC2 RecompHardware AdvantageLink
8BitDo Ultimate 2 WirelessNintendo layout & Windows/Deck dockZero-drift TMR sticks, charging dock, native Switch/XInput mode toggleView on Amazon
GameSir Cyclone 21000 Hz Blade combo cancelingTMR sticks, micro-switch ABXY buttons and 1000 Hz wireless dongleView on Amazon
Sony DualSensePlayStation button promptsAutomatic PlayStation icon rendering in XC2 tutorials and Driver Arts HUDView on Amazon
Xbox Wireless ControllerXbox prompts & impulse triggersSupports rumble_triggers = 1 in xc2.ini with redrawn Xbox button glyphsView on Amazon

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

Mountain peaks rising above a dense sea of clouds at sunrise
Karst peaks emerging above a morning sea of clouds, echoing the Cloud Sea Titans of Alrest
Desktop gaming PC workstation with dual monitors and tempered glass chassis
Windows 10/11 x64 desktop workstation for Vulkan 1.3, AMD FSR 3.1/4 and 3040x1710 internal rendering
Macro view of a handheld mainboard PCB and multi-core GPU silicon package
AVX2 CPU and Vulkan 1.3 VK_EXT_external_memory_host pipeline

Common questions

Can I install XC2 Recomp and XCX Recomp on the same PC?

Yes. Each project uses its own installer (XC2-Setup.exe vs XCX-Setup.exe), its own executable (xc2.exe vs xcx.exe), and its own portable install folder and %LOCALAPPDATA% launcher config.

Does XC2 Recomp use XCX-Setup tools when building from source?

Only in developer mode (when running from a bare git checkout without a release folder): installer/layout.py can borrow embedded Python, llvm-mingw, and Ninja from an unpacked setup release via XC2_SETUP_TOOLS. End users running the release ZIP or AppImage already have every tool bundled inside.