Runtime patch research and implementation for Xenoblade Chronicles Definitive Edition v1.1.2.
The current public build is a Dynamic 30-60 FPS runtime patch for Eden / LayeredExeFS. It replaces the old static 60 FPS .pchtxt approach with an exlaunch-based runtime module that adjusts game timing and UI/layer timing each frame.
- Dynamic 30-60 FPS timing.
- Runtime engine VSync policy: forces
ml::DevGraph::setVSync(1)so the old static60 FPSpchtxt is not needed. - Updates
LayerManagerframe-rate fields so UI/layer timing does not visibly accelerate. - Keeps cutscenes/movie/event-viewer paths at 30 FPS.
- Designed as a separate reversible LayeredExeFS mod folder.
- Game:
Xenoblade Chronicles Definitive Edition - Title ID:
0100FF500E34A000 - Version:
1.1.2 - Build ID:
92C78BB3DCBBC3F7A3CAF601D7B85F7A36C20907 - Primary target: Eden emulator with LayeredExeFS support
Other game versions/build IDs are not supported unless their offsets are re-validated.
Download the latest release zip from GitHub Releases and extract it into Eden's load directory so the final layout is:
<Eden user>/load/0100FF500E34A000/XCDE QoL Patch/exefs/main.npdm
<Eden user>/load/0100FF500E34A000/XCDE QoL Patch/exefs/subsdk9
Recommended setup:
- Enable
XCDE QoL Patch. - Disable the old static
60 FPSpchtxt mod. - Disable other QoL timing test builds if present.
- Keep only one FPS/timing mod enabled at a time.
Optional emulator-side setting:
- If you see first-visit stutter or shader/pipeline hitches, try enabling asynchronous shader compilation in Eden for this game.
Use the Dynamic 30-60 build. 120 FPS is not an active target: tests showed output remained capped at 60 FPS in Eden, engine interval 0 locked to 30 FPS, and direct NVN present interval 0 did not unlock output above 60 FPS.
See docs/TESTING.md for the summarized test results.
This repository stores source code and research notes only. Generated runtime binaries and emulator load folders stay outside git.
Requirements:
- A local exlaunch checkout.
- MSYS2/devkitPro Switch toolchain with
make,DEVKITPRO,DEVKITARM, andaarch64-none-elf-gccavailable. - Legally obtained game files for local testing.
Sync the recommended build into exlaunch:
.\tools\sync-exlaunch-project.ps1 -ExlaunchRoot <path-to-exlaunch> -Mode Dynamic30_60 -VSyncPolicy Interval1Then build from the exlaunch checkout using its normal make workflow. The expected deployable files are:
exefs/main.npdm
exefs/subsdk9
docs/ Reverse-engineering notes and current test status
include/ Shared headers for runtime patch code
src/ Runtime patch source and exlaunch adapter
tools/ Local toolchain, sync, deploy, and packaging helper scripts
patches/ Optional static validation patches
- This repository does not contain game dumps, keys, title content, copyrighted assets, or generated game binaries.
- Users are expected to provide their own legally obtained game files for local testing.
- Research notes may document offsets, symbols, and patch behavior, but not redistribute Nintendo/Monolith Soft code or assets.
- Generated mod packages should stay outside git and be distributed only as runtime patch binaries that do not include proprietary game content.
This project is not affiliated with or endorsed by Nintendo or Monolith Soft.
Source code and documentation in this repository are licensed under the Apache License 2.0. Redistributed versions and derivative works must preserve the license and NOTICE.md attribution.