Claude 9069c9208f Keep uniform updates inside a pass as scratch overlays and copy them at the pass end
nvnCommandBufferUpdateUniformBuffer between draws was replayed as a buffer copy at that point, which needs a barrier
against the draws that read the old bytes, and a barrier ends the open pass. The terrain and the sky islands' meshes
update before most of their draws: about 200 updates inside passes in a field submission, each a pass end, a full
barrier and a pass begin.

An update inside a pass now goes to the scratch buffer only. Later bindings of a range it covers bind the scratch
bytes (ub_bind, from ubo_info and bind_range); a binding it covers only in part, or at an offset the alignment
refuses, gets a merged copy of the snapshot or guest memory with the submission's updates on top. The copies into the
real buffers are recorded behind one barrier of their own at the next full barrier (vk_exec_ub_flush from
barrier_to). A new update of a range replaces the older overlay and pending copy of it, so the lists stay as short as
the blocks. Copies, fills and storage writes of the same bytes retire the overlays they touch, and a storage binding
over a pending copy brings the copies forward with a pass restart. bind_sig hashes the overlay each of the draw's
uniform and storage bindings reads, so a draw of an updated block binds the newest bytes and the others still skip
their descriptor build. TOTK_UB_OVERLAY=0 copies at once as before; ab alternates; TOTK_TRACE=perf prints the
counts.

1.4.3, RTX 4070 Ti, 2560x1440 DLAA, standing still on Great Sky Island, TOTK_AB=10 (tools/ab_summary.py):
17.03 ms a frame with the copies at once, 14.39 ms with the overlays (-15.5%, 58.7 to 69.5 fps); replay time on the
CPU 8.81 to 8.30 ms.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BspNcezsiV8zT8wcnXrrME
2026-11-04 23:54:02 +00:00
2026-11-04 19:10:09 +03:00

TotK Recomp

TotK Recomp is a static recompilation of The Legend of Zelda: Tears of the Kingdom (Nintendo Switch, 2023) into a native x86-64 application for Windows and Linux (docs/architecture.md).

Important

No game files are included. You need your own legally obtained copy of Tears of the Kingdom, dumped from your own console: the base game and the 1.1.0, 1.2.1 or 1.4.3 update. Instructions for obtaining those files will not be provided.

The game is built from your files on your machine, so the result contains the game. It is for your own use. Do not share it.

Status

Early development. The game is playable on Windows and Linux; visual bugs and crashes are still expected.

Report problems as issues, following CONTRIBUTING.md.

Features

  • Native code, not emulation
  • Game updates 1.1.0, 1.2.1 and 1.4.3; 1.2.1 and 1.4.3 saves carry over between them
  • Takes NSP and XCI game files, and compressed NSZ and XCZ as they are: the setup unpacks them itself
  • 60 fps by default; up to 144 fps or the monitor's refresh rate (experimental)
  • Custom resolutions (1080p, 2k...), supersampling and AMD FSR 1 upscaling
  • NVIDIA DLSS / DLAA on RTX GPUs: the setup downloads nvngx_dlss.dll from NVIDIA's DLSS SDK repository (github.com/NVIDIA/DLSS, NVIDIA RTX SDK license) when it finds an RTX GPU; untick it in the setup to skip it
  • HDR10 output with peak, game and HUD brightness settings
  • 16:10 (Steam Deck, handhelds), 3:2 (Surface, Framework), 21:9 and 32:9 (ultrawide) game resolutions, with the camera and the interface in that shape
  • Anisotropic texture filtering up to 16x, for sharp ground into the distance
  • In-game settings menu (F1) and performance overlay (F10)
  • Discord Rich Presence ("Playing TotK Recomp" with the play time), off by default, own application id supported
  • Setup and in-game menu in English, Russian, Brazilian Portuguese and Simplified Chinese
  • Keyboard, mouse and gamepad with remapping, rumble and gyro
  • Stereo or 5.1 surround sound output
  • Xbox button prompts: LB, RB, LT, RT, Menu and View, and A, B, X and Y as labelled on the button to press, with either button layout
  • Shaders prepared at install instead of during play
  • Mods made for emulators: unpack a mod into the mods folder next to totk.exe; switch and order them in the menu. RomFS mods, TKMM's merged output and ExeFS code patches (.ips, .pchtxt) work; the game rebuilds itself for code patches (docs/mods.md)
  • Atmosphère cheats: put a cheat file into a mod and switch its cheats in the menu (docs/cheats.md)

Planned

  • VRR

Installing

Windows

Requirements: Windows 10 or later, an x86-64 CPU with SSE4.2 (AVX2/FMA machines get a faster build), a GPU with Vulkan 1.3 and VK_EXT_external_memory_host, about 36 GiB free during setup (20 GiB after).

  1. Download TotK-Setup-<version>-windows.zip from Releases and unpack it.
  2. Start TotK-Setup.exe. If SmartScreen warns about an unsigned app, choose More info, then Run anyway.
  3. Pick your game files, the language and an install folder, and press Start. The setup builds the game once. With an NVIDIA RTX GPU it also downloads NVIDIA DLSS, unless you untick Download NVIDIA DLSS; turn DLSS on in the menu (F1).
  4. Play totk.exe from the install folder.

Linux

Requirements: as on Windows, plus Linux 6.7 or later and glibc 2.34 or later (Ubuntu 22.04, Debian 12, Fedora 35, SteamOS 3).

  1. Download TotK-Setup-x86_64.AppImage from Releases, or build it (docs/installer.md, "Linux release").
  2. Make it executable (chmod +x TotK-Setup-x86_64.AppImage) and start it. On a Steam Deck, do this in Desktop Mode.
  3. Pick your game files, the language and an install folder, and press Start.
  4. Play totk from the install folder.

To update, run a newer setup on the same folder; saves and settings are kept. Settings are in the in-game menu and in totk.ini (totk.ini.example lists every key). Controls: docs/controls.md.

Credits

TotK Recomp builds on the projects below. What was taken from each, with its license, is listed in THIRD_PARTY_NOTICES.md.

License

The project's own code is under the MIT License; third-party code keeps its own license (THIRD_PARTY_NOTICES.md). The license grants nothing for Nintendo's game.

TotK Recomp is an independent, non-commercial fan project, not affiliated with or endorsed by Nintendo. The Legend of Zelda, Tears of the Kingdom and Nintendo Switch are trademarks of Nintendo.

Building from source

docs/building.md lists the toolchain and the steps. Everything the build writes stays under build\ and generated\, which git ignores; run tools/check_content.py before a commit. Testers: docs/tester-guide.md.

Most of the code and documentation is written by AI coding agents (Claude Code) under the maintainer's direction; the maintainer plays every build and decides what is merged. AGENTS.md holds the rules they work under.

Languages
C 78.3%
Python 18.1%
C++ 2.9%
NASL 0.3%
C# 0.3%