NX2navi 0.10.0

Wait 5 sec.

Install or updateAlready have 0.6.0 or newer: start the launcher; it offers 0.10.0, updates itself and keeps the game it compiledand the shaders it prepared. This update translates the game's code once more, for the new frame-rate fixes, andcompiles what changed: a few minutes, once.Already have 0.5.0: the same, and the game's code 0.5.0 compiled is kept as it was compiled (for any x86-64processor); Rebuild the Game in the launcher's home compiles it again for yours.New install: download NX2navi-Setup-0.10.0.exe below, put it next to your .nup dump of the game and startit. Windows SmartScreen warns on the first start because the setup is not signed: choose More info and Runanyway. The launcher checks your game files, builds the game (10 to 25 minutes, once), prepares every shader andstarts it.Requirements: Windows 10 or 11; an x86-64 CPU with SSE4.2; 16 GB of RAM; about 30 GB free for the game and 1.5 GBfor the launcher; a GPU with Vulkan 1.3 and VK_EXT_external_memory_host (current NVIDIA and AMD cards). A GPU withoutVK_EXT_mesh_shader gets the mesh shader fallback as before, or runs the game's mesh shaders as compute shaders withlow_end_gpu = 1.Fixed above 60 fpsThese are game patches, on by default; each has a setting to turn it off.Moving platforms carry Link again above 100 fps (floor_carry). Above 100 fps the game's character controllerkept only a tenth of a moving floor's speed, so the Deku Tree's floating platform slid out from under Link. It nowcarries him as it does at 60 fps.Webs and water spring back at any frame rate (water_steps). Spider webs sink and bounce under Link and watersurfaces react to him, their simulation stepping 60 times a second whatever the frame rate. Up to 64 such surfacesat once.Sound and music no longer go silent after a few loading zones (sound_steps): the game's sound manager runs at60 Hz with whole steps.Water ripples keep moving above 60 fps, and movie events follow the picture's own timestamps(by automata.).Faster, with fewer stuttersThe next frame starts while the graphics card finishes the last one, on by default (tail_early; byepicmeme546). The game used to wait until the card had finished the whole previous frame, upscaler and interfaceincluded, though nothing it reads comes out of that last stretch. Standing in Hyrule Field on a Radeon RX 7900 XTwith FSR 4: 50.7 instead of 42.5 fps, 63.5 instead of 49.4 with three CPU helper threads, and 56.0 instead of 45.9along a route; 51.8 instead of 47.8 with FSR 3.1. It acts with TAA, DLSS, FSR 3.1 or FSR 4 on AMD cards; on NVIDIAand Intel cards it changes nothing yet. A frame that would hand the game anything else runs as before. Off:tail_early = 0, or the settings menu's Game tab, Testing, Start next frame early.CPU helper threads are Automatic (replay_workers = auto): the draw replay uses a number of helper threadschosen from your processor's cores. None on 4 cores or fewer, and none on Radeon RX 6000 cards and older, wheresome players' games lost the graphics device with them on.More pipelines are built before play. The shipped pipeline list holds 9,814 pipelines and their shaders, about960 more than 0.9.2's, taken from play: a new install builds them while it prepares instead of meeting them inplay.Large textures are copied out of the game's memory on several threads (par_jobs): a texture of 1 MiB or moreis copied two to three times faster when it first appears, the same bytes as before.Fewer foliage hitches: mesh pipelines link from stage libraries, which are built ahead at the preparation and atboot, and a mesh draw waits for its fast link instead of being left out.The pipeline cache is at least 1024 MB, its limit set from your RAM, and kept under it when written (byLeyukaka): on a 64 GB PC with an RTX 5080 the pipelines found in the cache at boot went from 14 to 84 %. Thegraphics driver's own shader cache is checked at normal priority, carries on where it stopped, is rebuilt at anupdate only when the driver lost it, and is warmed on the boot screen after a driver change.Shader translation and compute preparation work is reused (by automata.), repeated index-buffer binds areskipped, and log writes are batched.Experimental, off by default: Helpers work ahead (replay_pipe, 0 to 4) and Helpers take small jobs(replay_small, 0 to 63; by epicmeme546). In Kokiri Forest on the RX 7900 XT, with the early tail on: 62.2 fps withfive helpers and replay_pipe = 4, 63.2 with replay_small = 16 as well, against 45.4 with all of them off.Linux: game memory is shared with the graphics card through udmabuf instead of shadow copies (by VasilisManetas). On a Radeon RX 6800 XT with RADV: 60.7 instead of 40.3 fps in Kokiri Forest, with frames over 25 ms downfrom 768 to 5, and 55.7 instead of 42.4 in Hyrule Field.Less memoryVideo memory is managed automatically. A texture the game let go of is dropped after three minutes of playunused (six for one only the graphics card drew); in the sessions measured nothing came back after that long.What a switched-off feature held is freed: DLSS and DLAA (81 MiB of images at 2560x1440 and about 0.5 GB per DLSSfeature), FSR, FSR 1 (56 MiB), SMAA (35 MiB), HDR (42 MiB) and frame generation's images; at 4K they are abouttwice that.A video memory leak is gone: each pipeline a run drew kept its fast-linked version as well as its optimisedone. The driver's video memory outside the game's own allocator grew by 491 MiB in one session and from 1,672 to2,485 MiB in a long one.Unused pipelines are given back while video memory is short (pipe_release): over 80 % of the card's budget,the pipelines built ahead of play that no draw has used go, a few hundred every 5 seconds, and a draw that needs onelater builds it again from the pipeline cache.Shader code is kept compressed in system memory while idle (shader_compress): 777 MiB came down to 229 MiB ina play session, with no decompression on the drawing threads.An area load no longer makes about 1.1 GiB of new upload memory (by Vasilis Manetas): it reuses what the bootmade.A full video memory heap sends further allocations to another video memory heap, never to system memory (byTobim6).The log has a memory report every 3,600 frames: video memory by owner, what lies outside the game's allocator,system memory by owner and what grew over the session.NewF8 saves a bug capture (by epicmeme546). When you see something wrong, press F8: the game writes where Linkstands, the area, the camera, the picture on screen, your settings, the frame times around the press, the end ofthe log and your save into one folder under logs\captures, and a note on screen gives the capture its number.Telling us "capture 3" is then enough: a test run starts at that place with that camera and those settings(python tools/capture_run.py 3, docs/bug-capture.md). The flight recorder's F8 dump goes into the capture'sfolder.Text speed: Normal, Fast or Instant.A sprint button (by kendo): L3 or the game's B button makes Link sprint without rolling first, as a toggle orwhile held.Native (100%) in the Upscaling row, and frame generation with any Upscaling choice (DLSS and AMD FSR 3.1).Low latency in the Screen tab: Off, On or On + Boost, with NVIDIA Reflex or AMD Anti-Lag, without framegeneration too (off by default).Characters' own motion: every skinned character gives DLSS, FSR 3.1 and frame generation its own motion, andLink's is on by default, so characters stay sharper while they move.Experimental, off by default:softer shadow edges that crawl less as the camera moves (shadow_pcf);no one-frame flicker of light or glare when the graphics card falls behind on occlusion counts (oq_hold);quad and line-loop draws drawn as the game meant them (quad_index);DLSS or FSR before the bloom; DLSS for every render size of a mode, keeping its history;HD rumble for Pro Controllers and Joy-Cons.For reports: stutter_map = 1 gives the log a line for each hitch, with the area, what the frame waited for andany pipeline or shader that was missing, and every 10 minutes a map of the areas by their hitches;tools/stutter_map.py turns a log into a table. The flight recorder also saves after a one-frame flash.FixedCrashes and freezes:the log is written before the console, so a blocked console window can no longer stall the game, and closing itexits the game normally;frame generation without an upscaler no longer frees memory the graphics card still uses, and keeps the sizes ituses when the upscaler's idle sizes are freed; a frame generator that fails is taken down cleanly;a texture handle out of range gets a safe empty slot; the menu skips a frame instead of crashing when its bufferscannot be made; an upload refused for lack of memory is tried again;SMAA's images can no longer be freed twice; draw marks are numbered safely across helper threads;memory mirrors hand over only after their first copy, under the right lock;the render-target heap is sized for the scene, with a safe fallback;closing the game during the shader warm-up is no longer counted as a driver crash, and the warm-up is capped at10 minutes;when two installed drivers list the same graphics card, the newer one is used;AMD's Anti-Lag calls are locked against each other; a late HD rumble report no longer starts a Joy-Con pairbuzzing after the stop.Pictures: height maps, masks and lookup tables appear at once instead of after a placeholder frame; draws thatwrite memory wait for their pipeline; small buffer clears keep their order; the texture pool has room for the game's33,068 descriptors (by Leyukaka); the stand-in upscaler is sharper.Low-end GPU mode is offered only on the cards it was written for, which ended its shadow bug on high-end cards,and leaves frames prepared on their own thread off.Radeon RX 5000 and 6000: mesh pipelines are built without the driver's optimiser, as a candidate fix for the lostgraphics device; the log warns when CPU helper threads are set by number on RX 6000 cards and older.Launcher: one launcher and one job at a time per install; mod installs are all or nothing and refuse namesWindows cannot keep; an interrupted job is reported at the next start; disk space and long paths are checked beforedownloads and unpacks; downloads resume correctly and only into the right file; the settings file is left alonewhile the game runs; a save import holds the game's profile lock; crash files are written whole or not at all.ChangedThe hidden co-op beta is gone. The co-op of 0.8.0 (shown only with coop_beta = 1) shared story progressthrough a relay a player had to run and never showed the other players. Its code, its settings (the [coop]section of nx2navi.ini), its relay script and its menu tab are removed; lines of it left in an nx2navi.ini donothing, and a bug report still keeps their values out. A new co-op is being built in its place.The settings menu's Game tab has a Testing heading with the experimental performance settings: CPU helperthreads, Helpers work ahead, Helpers take small jobs and Start next frame early. A row whose setting doesnothing without another one is greyed out and says which it needs.Known issuesEnemies above 60 fps were only checked in general; report any that move or attack too fast or too slow.The candidate fix for Radeon RX 5000 and 6000 cards losing the graphics device is not confirmed by a player yet.Start next frame early was measured on an RX 7900 XT only; it is on by default, so please report a dark orflickering frame on other AMD cards (tail_early = 0 turns it off).The first visit to an area after an install can still pause for a moment while its textures are decoded.Integrated AMD GPUs can fail at the title screen (their host memory heap is too small for the game's memory).On Linux only the udmabuf change was measured, by its author.ThanksPull requests and branches in this release came from epicmeme546, Tobim6, kendo, automata., Leyukaka and VasilisManetas. Thanks to everyone who sent logs, captures and test reports.