• 3.5.0-monitor.1 cc9eb5a0c3

    intpa released this 2026-10-27 16:47:05 -04:00 | 6 commits to main since this release

    Saved display preferences — preview

    Based on upstream FPSLocker 3.5.0, retaining its history, attribution and GPLv2 license.

    Pair with SaltyNX 2.1.3-monitor.1, which is based on the latest upstream SaltyNX commit cf2adb7, including the 2.1.3 rendering fix and subsequent NVN stack-usage fix.

    • Saves a successful manually selected refresh rate per monitor and resolution, independently of game FPS.
    • Persists explicit display-disclaimer acceptance in INI. Both display-settings entry points honor it; a new monitor still prompts. Handheld has its own acknowledgment.
    • Preserves unrelated keys and the other resolution's settings during display-profile saves.
    • Checks rejected mode changes and save failures rather than claiming they were saved.

    Validation: production config/selection helpers passed C++23 host tests with -Wall -Wextra -Werror -pedantic, ASan and UBSan. Cases include independent monitor/resolution settings, preserving INI updates, explicit Accept/Decline/Back behavior, unknown context/changed identity, rejected setters/readback, 16-KiB boundaries, and write/flush/close/rename failures. A fresh isolated Switch build produced the ELF and overlay successfully; all 287 source inputs and both outputs were hashed.

    Hardware tested on 2026-10-27: after installing the matched pair, the operator reported "seems to work great" on the Erista Switch 1 / Smash Ultimate 13.0.5 setup using a 120-Hz external display and 60-FPS target. All seven installed runtime files were hash-verified and 68 protected files remained unchanged. This is successful operator testing on that setup; individual results for every alternate monitor/resolution/link scenario were not itemized.

    A successful manual rate selection saves that monitor's EDID-identified profile. Rates are independent for 1080p and 720p, and explicit Accept saves the monitor's warning acknowledgment. The matching SaltyNX restores a valid saved rate on reconnect with Docked Display Sync off.

    Back up switch/.overlays/FPSLocker.ovl, exit the overlay, install the new overlay and matching SaltyNX runtime, then reboot. Preserve existing INIs, exclusions, flags, clock profiles and plugins. With Docked Display Sync off, select the desired monitor rate once. The saved preference is then available for reconnection handling in SaltyNX.

    The SD ZIP contains only the overlay and installation notes. FPSLocker.ovl is also provided directly. Source and binary hashes are in manifest.json; verify downloads with SHA256SUMS.txt. Roll back by restoring the backed-up overlay/runtime and rebooting.

    The dated hardware result above was added after publication. Original binaries, tags, asset hashes and build-time manifests are unchanged.

    Downloads