github valentderah/totk-pc-recomp v0.3.4

4 hours ago

To update, run the new installer on your existing install folder. It keeps your game files, saves and totk.ini, and rebuilds totk.exe and the shaders.

Audio

  • Sound that stops for good after a while (#131). The port rendered several audio frames back to back after each pull from the sound device, before the game had answered the previous one. The game's audio thread fell behind until the sound stopped. Frames are now spaced apart the way the Switch's audio DSP spaces them.
  • Clicks at audio frame seams (#426). Reverb and other effect returns were read before the game had filled them, and a voice could skip a source sample at 32 and 44.1 kHz.
  • Grainy reverb in caves and shrines (#421). The reverb delay lines lost a sample per tap on every turn.
  • Linux: the default audio prefill is now 60 ms. At 20 ms PipeWire ran dry thousands of times in busy scenes.

Amiibo

  • Crash when equipping the Amiibo ability (#398, #410). The game destroys and sets up its amiibo events again before every scan; the port kept the destroyed event, and the game's next wait on it aborted.
  • Real amiibo dumps were refused as "Not an amiibo dump" (#441). The loader checked for a plain NFC tag instead of an amiibo.
  • The Amiibo tab picks its folder with the system's folder dialog. The folder field took no typing before, so only ./amiibo could be used.
  • The tab's reader line no longer flickers between ready and searching while the game scans.

DLSS

DLSS and DLAA still need nvngx_dlss.dll, which the port does not ship. Download NVIDIA's DLSS SDK from https://github.com/NVIDIA/DLSS, take nvngx_dlss.dll from lib/Windows_x86_64/rel and put it next to totk.exe. Without the file the DLSS settings do nothing. Windows and NVIDIA RTX GPUs only.

  • DLSS could not be turned off (#435). A DLSS mode shrank the scene even with DLSS/DLAA off.
  • Without nvngx_dlss.dll the scene stays at render_scale. A DLSS mode used to shrink the scene and sharpen textures even when DLSS could not run, which left a blurry, shimmering picture.
  • The picture shook by a fraction of a pixel each frame with a DLSS mode on, most visible on lit flat surfaces in shrines. The game's own scaling pass drew over DLSS's output again after a shader translator change. The FXAA switch (fxaa = 0) works again for the same reason.

Graphics

  • Crawling terrain textures in the Depths (#468). Terrain shaders pass texture gradients in a different order than the shader translator expected, so the mip level came out too sharp on slopes.
  • Device lost and black flickering frames on Intel integrated GPUs (#452). On Intel's driver the memory the port fills for each draw is not coherent, so the GPU read leftovers of earlier draws. Other GPUs keep the memory they used before.
  • Crash on a level change in nvnQueueSubmitCommands (#501). A texture looked up after the game freed its memory pool read the freed pool.
  • World markers on ultrawide screens (#495). At aspect ratios other than 16:9, the lock-on arrow, item names, enemy life bars and speech balloons sat short of their target. They now land on it.
  • A rare device lost with the recorder thread on: the port could free an image or buffer that a submission still being recorded used.
  • 256 is now offered as a sun shadow map size, for integrated GPUs short of memory bandwidth (#416).
  • When the GPU is lost, the log now names the render pass or compute dispatch it was running. This makes device-lost reports much easier to act on.

CPUs

  • Crash a few seconds after start on CPUs without AVX (#454), such as the Pentium Gold G6400. One small part of the non-AVX build still used AVX instructions. The release build now checks every runtime file for instructions the target CPU lacks.
  • Faster on CPUs without FMA3 (#333), such as Intel Ivy Bridge. Fused multiply-add is computed four at a time with exact rounding instead of one call per value, which removes stutter in heavy scenes.

Mods

  • Code cheats of a renamed mod folder stayed "after the rebuild" for good. Renaming a mod folder now rebuilds its cheats and ExeFS patches.
  • 1.2.1: large texture packs that raise the texture pool past 2 GiB no longer place textures in the wrong memory.
  • A new guide, docs/mods.md, walks through installing mods, their order, TKMM merges, code patches and what to check when a mod does not work.

Installer and saves

  • The game failed to load an old save after the first start (#374). Read-only folders and OneDrive placeholders in the save's working copy stopped the copy. They are now removed, and an error names the path that failed.
  • Setup failed with a MemoryError on PCs with little RAM (#240). The code generation step now retries with half the workers. TOTK_LIFT_JOBS sets the worker count by hand.
  • Linux: a setup without a display now stops at the check step instead of failing after the long compile (#338). The font warning says plainly that the game does not start without the Switch system fonts for Chinese and Korean.

Other

  • The stick rows of the Controls tab sit under an "Analog sticks" heading, and their "default" mark is right again (#393).
  • Fixes in thread waits, address signals and empty GPU memory pools, found by comparing with other ports' code.
  • totk.ini.example explains that the frame limit should divide the monitor's refresh rate, that variable refresh removes the remaining judder, and that memory = import is much slower on a discrete GPU.

Thanks

Thanks to lowlevel-larry for the audio pacing and the level-change crash, itaskaev2 for the DLSS fixes, mictony6 for the Depths terrain, MierzwaMatheus for the Intel GPU fix, TakeyaSaito for the ultrawide markers, deanzx06 for the FMA speed-up, wdiasjunior for the 256 shadow map and the stick rows, ExpertKT for the totk.ini.example notes, FaserDocs for the installer test fix, and everyone who reported the bugs fixed here.

Full Changelog: v0.3.1...v0.3.4

Don't miss a new totk-pc-recomp release

NewReleases is sending notifications on new releases.