Back
FPSLocker
by masagrator
|
Version | 2.1.0 |
Zip size | 505 KiB |
License | MIT |
Updated | 21/12/2024 |
Downloads | 70,786 |
MD5 | 7828fba747dc9809f11d3a731610291e |
App Details
An overlay that with companion SaltyNX plugin NX-FPS allows to set custom FPS in Nintendo Switch retail games.
Disclaimer: Tool is utilizing detection of graphics API to manipulate FPS and in special cases it requires using patches made per game for each version to get more than 30 FPS. You can find those patches HERE
Max supported yaml size is 32kB, though it can be expanded in next updates.
Requirements:
* Atmosphere CFW
* My fork of SaltyNX, version 0.5.1+
* NX-FPS 1.1+
* Tesla environment: ovlloader + Tesla Menu
Overlay runs in two modes:
* When game is running
If game is supported by SaltyNX and you installed everything correctly, you will see menu where first line states NX-FPS plugin is running. Explanation of each line:
Interval Mode - it's used by NVN API to set limiter to either 30 FPS (2) or 60 FPS (1 or 0 (0 means that game never bothered to set it, it can be also a sign that game is not utilizing NVN but EGL or Vulkan))
Custom FPS Target - it's used to lock game to certain FPS. If game is using engine proprietary FPS locks, it may not be able to unlock more than 30 FPS without additional patches.
Big number on the right - it shows how many frames have passed in last second for currently running game. This is to confirm that lock is working as expected.
Increase/Decrease FPS target - Change FPS Target by 5. Minimum is 15 FPS, max is 60 FPS. If FPS is set above 30 FPS, it sets interval mode to 1. Otherwise it sets interval to 2.
Disable custom FPS target - Removes FPS Target. Since we cannot predict what interval mode is expected at this point, it is in user's discretion to manipulate FPS to bring back correct interval before disabling FPS target.
Advanced settings - submenu which consists of:
Sync Wait - this is dangerous setting that disabled in most cases will crash game (for example Witcher 3 and Breath of The Wild), but in some can bring benefit of disabling double buffer at the cost of small graphical glitches (for example Xenoblade Chronicles 3). Use it with caution.
Convert config to patch file - if proper config file exists for this game and version, you will get an option to convert it to patch file that will be loaded when you will run this game next time. Patch is saved to SaltySD/plugins/FPSLocker/patches/*titleid_uppercase*/*buildid_uppercase*.bin
Delete patch file - if proper config file exists for this game and version, you will get an option to delete patch file so it won't be loaded when you will run this game next time.
Save settings - save profile for currently running game that will be loaded next time by plugin on boot automatically. Don't use it if you disabled Sync Wait and you didn't test it properly that it won't cause crash. Profile is saved in SaltySD/plugins/FPSLocker/*titleid_uppercase*.dat
* When game is not running:
It will list installed games (max 32) and as first option it's available "All" submenu.
Inside each one you will find two options:
Delete settings - it will delete file created by "Save settings" option
Delete patches - it will delete file created by "Convert config to patch file" option
Thanks to ~WerWolv for creating Tesla environment, and ~cucholix + ~Monked for tests.
Changelog
2.1.0
Added support for changing refresh rates in docked mode. Read more in README.
Changed some design choices of libtesla to make it less taxing on CPU. Fixes issues where opening FPSLocker could cause visible performance drop in some games.
Whenever FPSLocker patch is currently forcing 60 Hz, overlay will inform about this in main menu
2.0.3
Check/download config file call is now done in a separate thread
This fixes problem with overlay being unresponsive
You get additional info
You still won't be able to exit Advanced settings until thread has finished work
Now there is a timeout that if thread runs for longer than 30 seconds, it will return, unlocking overlay
Few text changes related to received informations from Check/download config file
2.0.2
Remake Advanced Settings page
Now "Check/download config file" when cannot find patch file in Warehouse, it will check games list for possible informations as:
If this titleid is listed
If titleid is listed, then if BID is listed and how patch recommendation looks like for it
If titleid is listed and BID is not listed, then how patch recommendation looks like for latest listed BID
More detailed informations when using options in FPSLocker Patches category
2.0.1
Fixed a bug that was crashing OS when trying to disable/enable Display Sync while game not supported by SaltyNX was running.
2.0.0
Add Display settings menu to change LCD refresh rate (don't put Switch to dock with changed refresh rate while game is running, otherwise there is a chance game will crash), not available for OLED model. SaltyNX 0.8.0+ is required for this menu to show. More in readme.
Add support for next revision of game configs that make them smaller and move most of calculations to FPSLocker overlay itself.
Move from c++20 to c++23
1.2.8a
Fix "Set Buffering" in games with Quadruple Buffering (f.e. Assassin's Creed Revelations - The Lost Archive)
1.2.8
Fix retrieving BID from games using new RTLD (such as Tomb Raider I-III Remastered)
To fix compability with new RTLDs fully, it is necessary to update SaltyNX to at least 0.7.2 version!
1.2.7
Add support for downloading additional files from Warehouse if config file have "Addons" entry. Used currently only to fix compability issue in Tears of the Kingdom with atmosphere's romfs listing cache creation which allows loading romfs mods.
1.2.6a
Fix overlay lock not working since libnx 4.5.0 release
1.2.6
Add option in Advanced Settings to download config from repository Check/download config file. More in README.
Slightly redesign Advanced Settings UI.
1.2.5a
Fix saving settings if "plugins" folder doesn't exist inside SaltySD folder.
1.2.5
Add support for SaltyNX 0.7.0+
1.2.4
Print titleid and buildid if no config is found
Allow using all available buffers when game is not using all of them.
For this release to properly work it is required to update NX-FPS to version 1.5.4
1.2.3
Allow in games using Quadruple Buffering (for example Assassin's Creed The Ezio Collection) to force Triple Buffering.
When saving settings with different Buffering than Double, Window Sync will be reseted to Enabled.
1.2.2
Allow setting double buffer in games that are using triple buffer.
More in README.
NX-FPS 1.5.2+ is required
1.1.3
Provide better API detection.
Now you can see if game is using NVN, EGL or Vulkan in Advanced Settings.
Requires updating NX-FPS to at least 1.3 version.