Skip to content

About

No description, website, or topics provided.

Resources

Contributing

Stars

4 stars

Watchers

0 watching

Forks

Latest commit

 

History

20 Commits

Folders and files

Repository files navigation

XCDE QoL Patch

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.

Features

  • Dynamic 30-60 FPS timing.
  • Runtime engine VSync policy: forces ml::DevGraph::setVSync(1) so the old static 60 FPS pchtxt is not needed.
  • Updates LayerManager frame-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.

Compatibility

  • 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.

Installation

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 FPS pchtxt 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.

Current Recommendation

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.

Building From Source

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, and aarch64-none-elf-gcc available.
  • 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 Interval1

Then build from the exlaunch checkout using its normal make workflow. The expected deployable files are:

exefs/main.npdm
exefs/subsdk9

Repository Layout

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

Legal / Content Policy

  • 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.

License

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.

About

No description, website, or topics provided.

Resources

Contributing

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages