Files
NX2navi/docs/releases/v0.10.2.md
chrg6 516bfa6fb0 Start the game when DLSS Frame Generation is on and the chosen graphics card is not an NVIDIA one.
Four players of 0.10.1 could not start the game again after changing settings: "no usable Vulkan device", exit code 70, until nx2navi.ini was edited or removed by hand. One log shows the case: a laptop with an RTX 3050 and Intel Iris Xe graphics, framegen = dlss and gpu_index = 1, the Intel one. With frame generation on, the device is made through Streamline's interposer, which asks it for VK_NV_low_latency2 and failed with VK_ERROR_EXTENSION_NOT_PRESENT, and nothing else was tried.

A chosen card of another vendor now counts as not usable while the interposer is in use, so the best usable card is taken, as for a chosen card that is gone. Where the card in use is still not an NVIDIA one, or the interposer fails to make the device for another reason, the loader makes it and frame generation is off for the run: the log says why and the settings menu shows it as unavailable, as it does when Streamline's files are missing.

Not run: no PC here has two cards of different vendors. The changed files compile.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-14 05:26:01 -05:00

7.8 KiB

Install or update

  • Already have 0.6.0 or newer: start the launcher; it offers 0.10.2, updates itself and keeps your saves and settings. This update translates the game's code once more (for the ocarina recorder's fix) and prepares every shader again with the fixed shader translator: a few minutes, once.
  • New install: download NX2navi-Setup-0.10.2.exe below, put it next to your .nup dump of the game and start it. Windows SmartScreen warns on the first start because the setup is not signed: choose More info and Run anyway. The launcher checks your game files, builds the game (10 to 25 minutes, once), prepares every shader and starts it.

Requirements: as for 0.10.0: 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 GB for the launcher; a GPU with Vulkan 1.3 and VK_EXT_external_memory_host (current NVIDIA and AMD cards).

Changed

  • The Game tab's Testing settings keep 0.10.1's defaults: CPU helper threads Automatic (replay_workers = auto), Start next frame early On (tail_early = 1), and Helpers work ahead and Helpers take small jobs off (replay_pipe = 0, replay_small = 0). The last two stay experimental: a tester's measurement on an RTX 3090 found them slower at four of eight places and no more than 7 % faster at the others.
  • Automatic texture detail is more careful with video memory (texture_detail = auto): Full now starts at cards of 12 GB (10 GB cards get Reduced, as 8 GB cards do), and integrated graphics never get Full, because their video memory is the PC's own memory. With a card filled to the room of an 8 GB one, a tester measured 29.6 fps with Full and 42.8 with Reduced on the same tour, and a handheld that got Full closed when a save was loaded. A texture detail you chose yourself stays as you set it.

Fixed

  • See-through ground (issues #569 and #824). 0.10.0 and 0.10.1 shipped an older shader translator, whose shaders could not reach the newest texture slots, so ground and walls could turn see-through after some play. 0.10.2 ships the translator built from its own sources, prepares the shaders again with it, and no longer uses translations kept from the old one. The release tools now refuse a translator that was not built from the release's sources.
  • AMD Radeon RX 5000 and 6000 cards losing the device (the game ending with code 72): on AMD's driver these cards now take the mesh shader fallback by default (mesh_fallback = auto), and a lost device is noticed and reported sooner. Not yet confirmed by players with these cards: please report how it goes.
  • Sky-coloured holes in the ground where grass is still loading, on cards that take the mesh shader fallback: a patch of grass or leaves is now left out whole until it is ready, where its depth alone was drawn before (mesh_fallback_hold = 0 brings that back). Not yet confirmed by players with these cards either.
  • The game not starting after a settings change on a laptop with two graphics cards ("no usable Vulkan device", code 70, until nx2navi.ini was edited by hand): with DLSS Frame Generation on and the Graphics card setting on the card that is not NVIDIA's, the device could not be made. The game now starts on the NVIDIA card, and where there is none, or frame generation cannot be set up, it starts without frame generation and the log says why.
  • Crashes and hangs found in a review of the whole runtime; none was seen in our own play, and each fix has a check of its own:
    • a crash when the game read memory the lazy write-back was just handing to the GPU (NVIDIA and Intel cards);
    • a game thread reading a frame's record another thread had just freed, when two threads submitted at once;
    • a race between a system event's signal and its destruction, and full event tables (vsync events after 16, host events), each of which ended the game;
    • a movie ending the game when memory for a picture ran short;
    • game sessions closed while another thread still used them;
    • after 15 to 66 hours in one session, textures the game writes stopping to update (the counters behind them are now 64-bit);
    • audio settings the game sends that our audio renderer did not accept ended the game; now the one effect is left out and one line goes into the log (audio_strict = 1 brings the old behaviour back for bug reports);
    • a stuck shader translation no longer holds the game for four minutes;
    • a save file could be closed while another thread was still reading it.
  • Crash reports and exits: a second crash no longer cuts the first one's report short; a stack overflow writes a report; an error or a lost device ends the game without running every library's shutdown, where DLSS's could crash; HD rumble stops at every end; the end of the log is written even past its 64 MiB cap. A hang watch writes a report to the log when no frame is shown with the window in front, or the GPU does not finish, for 20 seconds (hang_watch_s, 0 turns it off). The launcher explains code 72 (the graphics device was lost) and shows the game's error line after a restart and from the Steam shortcut.

Frame pacing and RivaTuner Statistics Server

  • RivaTuner's profile is put back when the game closes, before the slow save of its pipelines, and no frame drawn after that writes the game's limit into it again. After a crash or a Task Manager kill, the next start puts it back from rtss-profile.txt next to the game, unless you changed the profile since. If you never made a RivaTuner profile for the game yourself, delete Profiles\ocarina.exe.cfg in RivaTuner's folder once: earlier versions could leave a frozen copy of the global profile there.
  • The game hands the limit to RivaTuner only once RivaTuner is seen holding it, and takes it back while a movie plays, while the window is minimised or no picture goes out, and for the run when RivaTuner lets frames through faster than the limit or never shows its hold. A limit set in RivaTuner itself on top of the game's is named in the log and in the menu's frame rate row.
  • A limit change reaches RivaTuner's profile once it stays, not at every switch of low latency; display on a 59.94 Hz monitor is rounded down for RivaTuner versions without fractional limits.
  • With DLSS Frame Generation, Reflex now holds the frame limit (reflex_limit = 1), so the game waits once per frame instead of twice; the game's limiter takes over during movies and when Reflex does not hold it.
  • Fewer stutters: turning DLSS or FSR on or off, changing its mode, pausing and resizing no longer stop the graphics card until it is idle; fewer memory freezes right after an area load; pipelines are remembered as soon as they are first built; the shipped list of pipelines built before play grew to 10,230.

Fixed above 60 fps

  • The ocarina's song recorder keeps its timing at any frame rate (ocarina_timing, on by default). Above 60 fps its clock stood still: a song taught to the scarecrow lost its pauses and the recorder's time limits never came. Songs recorded above 60 fps in earlier versions keep their missing pauses.
  • The shake key swings at the game's own pace at any frame rate.
  • Dynamic resolution (dyn_res = 1) aims at the frame limit you set, not at 60 fps.

Settings

  • In nx2navi.ini, a comment after a value (pace_smooth = 0 ; off) and the words off, false and no now mean what they say for on/off settings; before, such a line could turn the setting on. Paths and names keep their whole text.
  • New: reflex_limit, ocarina_timing, audio_strict, hang_watch_s, mesh_fallback_hold, and switches that bring back the earlier behaviour of this release's larger changes should one cause trouble: upscaler_idle_wait, present_order, wb_lazy_unlocked. See nx2navi.ini.example.