github valentderah/totk-pc-recomp v0.4.0

2 hours ago
Game crashed? Read this first
  • AMD GPU, black screen at start or VK_ERROR_DEVICE_LOST: add vk_recorder = 0 under [performance] in totk.ini.
  • failed (-4) in the log: comment in #1032 and attach logs\totk.log.
  • failed (-2) or "out of memory" in the log: comment in #1031 and attach logs\totk.log.
  • Mods installed: try once without them, then comment in #1039.
  • Anything else: open an issue with logs\totk.log.
Want more FPS? Try these settings

Add them to totk.ini next to totk.exe under [performance], one at a time:

Setting Helps when Cost
sync_ahead = 1, and on Windows also shadow = 1 You are below your FPS limit on a dedicated GPU. The game builds the next frame while the GPU draws the previous one: +31% on an RTX 4070 Ti at 1440p, 73 to 100 FPS on an RX 9070 XT. One more frame of input delay. No gain on integrated graphics.
replay_workers = 4 (also in the menu under Advanced, Scheduling) You play at 1440p or 4K: 71 to 79 FPS in a town at 4K on an RTX 5070. No change at 1080p on a fast CPU. About 250 MB of VRAM and 300 MB of RAM: leave it at 0 on an 8 GB card or integrated graphics.

Please report your CPU, GPU, resolution and FPS before and after in the comments or an issue, even if it just works: settings that help widely get turned on by default. Flicker, pop-in or a crash? Set it back and attach logs\totk.log.

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.

Warning

DLSS and the Linux build are tested by the community. I don't have the hardware to test them myself.

Memory and crashes

  • About 1.4 GB less memory over a long session (#921). On a 10-minute ride through Hyrule Field the game now holds 30% less VRAM (4.8 to 3.4 GB) and 1.4 GB less system memory on an RX 9070. Textures the game no longer uses are kept up to 256 MB instead of up to 800 MB or more, and video memory is taken from the driver in smaller blocks, so less of it sits allocated but empty. The frame rate and stutter did not change.
  • A short out-of-memory spell no longer ends the game (#1031, #1028, #1010, #553, #348, #362, #1027). When Windows can't give memory at that moment, the game frees what it can spare and retries for up to 30 seconds instead of closing with a fatal error. Crash logs with "out of memory" at a full system, failed staging buffers or failed image creation should mostly go away.
  • System memory is counted where video memory takes it (#285, #670). Some drivers, AMD's among them, charge every byte of video memory to the game's system memory too. The game measures this at start and now keeps the total under what the system can give, instead of watching the video memory budget alone. Integrated graphics (AMD APUs, Intel), where video memory is system memory, benefit the most.
  • Integrated graphics use compressed textures by default. Switch textures are now converted to BC3 instead of uncompressed RGBA on AMD APUs and Intel graphics: about 900 MB less memory and about 20% more FPS on a Ryzen 7900X's integrated GPU.
  • Handheld mode renders at the resolution you set (#1033, #998, #536, #702). In handheld mode the game rendered a 1920x1080 scene for a 1280x720 output while its texture memory was sized for 1280x720, so heavy scenes such as shrine entrances and the Temple of Time could crash in game code. The scene now matches the output: 1280x720 handheld renders 2.25 times fewer pixels than before. If you play handheld with a 1920x1080 output, the game now really draws 1920x1080 instead of 1280x720 stretched up, so it costs more GPU time. Docked mode is unchanged.
  • Crash reports carry much more detail (#967, #998, #1005). logs\totk.log now lists the CPU registers, the machine code around the crash and the memory the registers point to, plus the system memory in use, so random crashes in game code can be traced to the instruction. Heap corruption now leaves a report too, instead of the game closing silently.
  • More detail for the crash entering some Skyview Tower areas on 1.2.1 (#705). When the game crashes while loading such an area, logs\totk.log now lists the parts of the physics shape it was reading and which of them are missing, so the cause can be found. This does not fix the crash yet. No cost while playing.

I can't reproduce the memory crashes on my machines, so I can't promise these fixes cover yours. If the game still runs out of memory, please attach logs\totk.log in #1031: it now shows how much memory the game and the system held at the crash.

Performance

  • Laptops and hybrid Intel CPUs (#974). The game asks NVIDIA Optimus and AMD switchable graphics for the dedicated GPU, opts out of Windows power throttling, and keeps the threads every frame waits for on the P-cores of a 12th-generation or newer Intel CPU (when it has at least 4 of them).
  • Fewer vertex buffer binds per draw (#974). Draws in a row that read different vertex streams no longer bind all 17 slots again: on an RTX 5060 Laptop this cost 16% of the frame rate.
  • Faster floating-point code. The game's hottest functions got about 10% shorter: 4.6% shorter frames in a town camera pan.
  • Shorter waits between game threads. Threads poll briefly before they go to sleep, and the GPU command recorder hands its work to the GPU without making the game wait for it.
  • Linux build: less time tracking memory writes. On a Steam Deck at Lookout Landing the frame rate rose about 7.5%. Under Proton it stays off until it has been measured there.
  • Fewer stalls while new effects build (#1040). A draw whose pipeline was still being built sometimes waited 50 to 400 ms instead of skipping one frame, because the game lost track of which images it renders every frame. It now keeps them. Shows most on a fresh shader cache or after a driver update. No cost.
  • The GPU command recorder is on for AMD GPUs too. A thread of its own makes each frame's Vulkan calls, as on NVIDIA and Intel since 0.2.8: AMD players who turned it on reported more FPS in towns and fights. If the game shows a black screen at start or stops with VK_ERROR_DEVICE_LOST, add vk_recorder = 0 under [performance] in totk.ini and attach logs\totk.log in #1032.
  • Optional: one frame further ahead of the GPU (#917, #676). sync_ahead = 1, off by default; see the top of these notes.

Fixes

  • Climbing above 60 fps (#35, #276, #1001). Link no longer climbs slower, slips off the top of ladders or falls short of ledges above 60 fps. 30 and 60 fps are unchanged; on 1.2.1 climbing at 60 is now full speed too. No cost. If climbing misbehaves, turn off Climbing speed fix (Mods tab) or set climb_fix = 0 under [frame rate], and report it in #35.
  • Dynamic resolution is now a setting (#916, #573). The game lowers the 3D scene to 90 or 80 % by an estimate made for the Switch that ignores your GPU, so on wide or high-resolution screens the picture got softer even on a fast PC. Turn off Dynamic resolution in the menu (Graphics) to keep the scene at your render scale. On by default, as before. With a high render scale on a 4K or wider screen the scene can now grow past 4096 pixels wide.
  • DLSS stays off the inventory screen and stays on at every camera angle, with the scope or the camera rune open.
  • Xbox and PC button prompts at every screen shape (#378). With prompts = xbox or prompts = pc, ultrawide (21:9, 32:9), 16:10 (Steam Deck among them) and 3:2 screens get those prompts at their own resolution instead of 1920x1080 or the Switch prompts. Shift is now drawn as an arrow over its name. The setup takes about 4 minutes longer and the install about 180 MB more.
  • amiibo file names in any script show correctly in the F1 menu (#603), Japanese and Chinese names among them.
  • Linux AppImage: the installer starts (#985) even when Python packages are installed in the user's own folder.
  • Cheats with register conditions run (#973). The cheat VM now runs opcodes C0 to C3 as Atmosphere does, so cheats that compare registers or keep values in saved and static registers no longer show as unsupported.
  • Gyro works on pads without their own motion calibration (#912). The release ships SDL 3.4.20, which falls back to default calibration for Switch-style pads such as the Beitong Asura 2 Pro+, whose gyro read as infinity before.
  • Intel UHD and Iris Xe: no coloured noise on foliage or black patches over the scenery (#970, #992, #81). Dynamic alpha to coverage and dynamic vertex input now default to off on Intel's Windows driver for integrated GPUs; a value set in totk.ini still wins. Costs a few more pipeline builds there.
  • Gear doors open above 30 fps on 1.2.1 (#330, #984). In Riogok and Turakamik shrines and the Wind Temple the gears turned but the door stayed shut above 30-60 fps: the game checked how far a gear turned in one frame against a 30 fps amount. The check now takes the frame time into account, as the game's 1.4.3 update does. No cost.
  • Contact shadows follow Vulkan's image layout rules (#1060). With contact_shadows on, the shadow pass read the depth and colour images in the wrong layout every frame. NVIDIA showed no difference, but on GPUs that compress images by layout it could shade wrongly. No cost.
  • The installer no longer hangs on an unavailable drive (#1006). An install folder on a disconnected drive or network share now gives an error at once instead of freezing the space check.

Thanks

Thanks to ipavlin98 for command recording on several threads, DLSS on it and the heap corruption reports, corne-ac for the Steam Deck memory tracking work, mictony6 for the DLSS inventory fix, Wintego for the PC prompts at every screen shape, cdonatom for the Xbox ones, KyokoMiki for the amiibo names, jay23606 for the AppImage fix, itaskaev2 for the contact shadows and validation fixes and for carrying PRs onto dev, ProSep for running a frame ahead of the GPU, ipavlin98 for the pipeline stall fix, ProSep for the dynamic resolution setting, ApereLieZ for testing it, Luxury213 for the installer drive fix, and MultiKoopa, wentaoqqq, Miguelpcstm, gaprelrose-sketch, ghostfxck, NOOBTW00, Lenoired, nyokkard, Blucher555, Guister07, monscriser, diegobiscoito, RyannBR, noob623, Davod-pubg, capitanel001-001, Zolrex, haidergondal1010-maker, SergeyKomVl, Dragon-1st, suqinghua12138, AkameKaga, iQhentud, Mobard, Z5Meisosis, Canpake59, zetadaking, lzw57899, AshleyZX, tochjunin, Surebuckle71, gtone010 and wakakak549 for the reports behind the fixes here.

Full Changelog: v0.3.13...v0.4.0

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

NewReleases is sending notifications on new releases.