mirror of
https://github.com/valentderah/totk-pc-recomp.git
synced 2026-11-12 10:21:02 +00:00
The bug form asks for the version on the settings menu's title line instead of the window title, which has none, points to Copy system info and to logs\totk.log. CONTRIBUTING lists the lifter's differential tests and the commit message style for pull requests. docs/maxwell.md cites nxnative's notes by name, since nxnative rewrote them and the line numbers pointed nowhere, and pins the MacNativeGames shorthand to the commit its line numbers were read at. totk.ini.example gains menu_lang and input_record and points to the menu's Advanced tab for the other keys. AGENTS.md asks comments to cite upstream code by project, file and function. README: Linux and the Steam Deck are the platforms planned. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.5 KiB
2.5 KiB
TotK Recomp
Static recompilation of Tears of the Kingdom (Switch, ARM64) into a native Windows x86-64 exe with a Vulkan renderer. Design: docs/architecture.md. Toolchain, build commands and tests: docs/building.md.
Game content boundary
This repository is public. Game data lives outside it and every derived file stays in ignored folders.
- The user's game and key paths are in
config.local.toml(ignored). Pass the keys file path to tools; the tools read it themselves. Key values stay out of your output, logs, commands and files. - Everything extracted or generated goes under
build/orgenerated/. - Every file the code generator emits carries the marker defined as
GENERATED_MARKERintools/check_content.py. - Run
python tools/check_content.py --stagedbefore proposing a commit. It is the same check CI runs.
Reusing code
refs/ holds the upstream checkouts (tools/fetch_refs.sh recreates it). Read-only.
- Copy only MIT, BSD, ISC, zlib or Apache-2.0 code, keep its header, and add a row to
THIRD_PARTY_NOTICES.md. - yuzu, suyu, OpenSmash-Ultimate and other GPL code: read for behaviour, write our own.
tools/vendor/stays byte-identical to upstream; Windows changes go intools/extract.py.
Code
- Build C with MSYS2 UCRT64 Clang (
C:\msys64\ucrt64\bin). Generated C uses GNU extensions, socl.exeis out. Call Ninja from that directory by full path or put it first on PATH. - Two Python environments:
.venv(3.12) for the lifter and the build,.venv-py314for the extraction and shader scripts, which needcompression.zstd. - Generated C is never edited by hand: change the generator (
recomp/). - Every lifter change passes the differential tests against Unicorn (docs/building.md, "Checks"). After changing
recomp/jumptables.py,tests\jumptables_check.pyreports 0 disagreements on 1.2.1 and 1.4.3. recomp/layout.pyalone decides module bases.- Graphics bugs: docs/maxwell.md lists the Maxwell behaviour the Vulkan path must match and the TotK bugs other ports fixed.
- Comments say what the code does and why, in words that stand on their own. Cite our code by file plus function (a line number may follow as a hint) and upstream code by project, file and function:
refs/moves, so its line numbers rot. Commit hashes belong to the attribution of copied code.
Writing
Code, comments, docs and commit messages are in English. Commit messages are plain sentences without type prefixes.