mirror of
https://github.com/tangerineturtle1/NX2navi.git
synced 2026-11-15 19:19:58 -04:00
With NX2NAVI_RTSS=0, frame generation or the driver's low latency, the game keeps RTSS out of its frame limit, but a limit the player set in RTSS itself (its Global profile or the game's own: a frame rate limit, a frame time limit or scanline sync) still holds the frames, on top of the game's limiter, the driver's or frame generation's. Nothing read RTSS's settings in such a run: a first want that kept RTSS out never started its thread, and frame_step_cap_ns folded the reasons into -1, so the log said "NX2NAVI_RTSS=0 or frame generation" for low latency too. frame_step_cap_ns now passes the reason (rtss_decide.h RTSS_OUT_SETTING, RTSS_OUT_FRAMEGEN, RTSS_OUT_LOWLAT; the unlimited branch too), and the kept-out line names it. A kept-out first want starts the worker as well. While RTSS is kept out the worker never loads RTSS's hooks library and only reads: its shared memory, and once RTSS lists the game the [Framerate] values of Profiles\<exe>.cfg, else Profiles\Global, with the system's ini reader, again only when either file's write time changes. When one of them limits the game, the log names the file, the values and the other limiter, once per change, and rtss_limit_state returns 4, which the frame rate row shows as a new note (UI_MENU_FPS_RTSS_TWO, in English, Russian, Brazilian Portuguese and Simplified Chinese). A later want of a limit (frame generation or low latency switched off) loads the hooks and hands RTSS the limit as before; NX2NAVI_RTSS=0 stays read-only for the run. Pacing does not change. Not reproduced before the change: a stacked limit needs RTSS running in a play-test. tests/rtss_worker_check.c gains three scenarios against the fake RTSS (a Global limit with NX2NAVI_RTSS=0, scanline sync in the game's profile under low latency and then a limit, frame generation with no limit of RTSS's own), and tests/rtss_limit_check.c builds rtss_decide.h alone and checks which settings hold the frames and their text. Both pass, with frame_step_check and a compile of every runtime file; -Wall adds no warning. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>