mirror of
https://github.com/tangerineturtle1/NX2navi.git
synced 2026-11-15 19:19:58 -04:00
Make the release 0.10.2, with its notes: the stability and frame-pacing pass, the translator built from the release's own sources (the see-through ground of issues #569 and #824), the AMD device-loss fixes, and the items the user approved.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
80
docs/releases/v0.10.2.md
Normal file
80
docs/releases/v0.10.2.md
Normal file
@@ -0,0 +1,80 @@
|
||||
## 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).
|
||||
|
||||
## 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.
|
||||
- **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`, 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`.
|
||||
Reference in New Issue
Block a user