FPSLocker homebrew app for Switch updated to v1.1.0

Screenshot from 2023-03-18 13-10-48.png

Switch users rejoice, as now you can enjoy your games with framerates above the locked 30fps that most of the titles released for the Nintendo Switch are forcefully locked into.
Homebrew developer @masagrator has developed a homebrew application which works as an overlay for the Nintendo Switch, that allows users to set custom FPS for Switch retail games.



The app was released around a week or so ago with its initial 1.0.0 release, and today the overlay application has been updated to version 1.1.0. This app requires the use of other two homebrew apps, NX-FPS (on its 1.1 version) and SaltyNX (on its 0.5.1 version). A repository called FPSLocker-Warehouse has also been created to store YAML files that FPSLocker uses, as well as store information about 30FPS games, as well as including information about how to update patches for 30+ fps hacks. masagrator added patches for 3 specific titles from the get-go, these being Xenoblade Chronicles 3, The Witcher 3, and Monster Hunter Rise, but with community effort players can gather patches for other games if they so desire.

Here's masagrator's post about the recent v1.1.0 release:

Released 1.1.0 version of FPSLocker.
To work properly it requires updating NX-FPS to 1.1 version and SaltyNX to 0.5.1 version.

Overall plugin now supports loading special LOCK patches to adjust games FPS if plugin is not enough to do the job.
FPSLocker has option to convert yaml configs to LOCK patches when game is running (to retrieve BID of game) that will be applied on next game boot.

if for some reason you would like to convert yaml to LOCK patch on PC, you can use this script:
https://github.com/masagrator/NX-FPS/blob/master/scripts/yamlToBin.py
And for reversing patch to yaml (though it will use different layout, sort keys in alphabetical order and store numbers only in decimal system - because I don't see an option to fix that somehow)
https://github.com/masagrator/NX-FPS/blob/master/scripts/binToYaml.py

Created new repo which whole purpose is to store those yaml files and info about 30 FPS games + how to update each patch yourself if you know how to use required tools:
https://github.com/masagrator/FPSLocker-Warehouse

As I suck at writing documentation I hope you will forgive my Methodology folder that it's not written with perfect English.

For starters I have added patches for 3 games that I have currently on my Switch and didn't work as expected without those patches:
- Xenoblade Chronicles 3 1.3.0 (to disable double buffer turn off Sync Wait)
- The Witcher 3 - Complete Edition 3.7 (with dynamic resolution tweaks for each FPS)
- Monster Hunter Rise 14.0.0 (added warning to DETAILS that if game will be running without patch and you will save settings with some custom FPS target, game will crash at boot. If you don't have a patch for your version of game, you can delete settings by opening FPSLocker when no game is running).

:arrow: Source
:arrow: GitHub Repository
 

FAKEdemicBioPYSCHONANOWAR

Well-Known Member
Member
Joined
Sep 26, 2021
Messages
207
Trophies
0
Age
35
XP
517
Country
Netherlands
That why for people like you I have implemented option to set 15 FPS. If you don't care about FPS, you can lower it to get higher resolution or save battery :ph34r:
Can this fpslocker conflict with 60fps ips patches or cheats that may or may not be up to date to be working on the game version?
(Just wondering for unexpected behaviours. As i have all your 60 fps patches and more but i dont jeep track which still even work or not with what game version)
 

masagrator

The patches guy
Developer
Joined
Oct 14, 2018
Messages
6,278
Trophies
3
XP
12,043
Country
Poland
Can this fpslocker conflict with 60fps ips patches or cheats that may or may not be up to date to be working on the game version?
(Just wondering for unexpected behaviours. As i have all your 60 fps patches and more but i dont jeep track which still even work or not with what game version)
With IPS patches no since FPSLocker patches are applied after loader initializes game, while IPS patches are applied before that.

With cheats there may be an issue if you would like to set for example 45FPS but you have enabled 60 FPS in cheats, then it may come to race condition where one value will be overwritten by other value, and since cheat engine state is refreshed every 10ms vs my plugin doing this only every second, cheat will always have a priority. So it's not recommended to run FPS cheat with this plugin IF FPSLocker patch already exists for your version.
 

Arcansel

Well-Known Member
Newcomer
Joined
Dec 5, 2020
Messages
86
Trophies
1
Age
31
XP
284
Country
Portugal
Thank you for this tool! I have a question though, is there a workaround for the random crash that may happen when selecting the overlay? This is something it always happened to me and after all this time it still happens so i am assuming there is something i can do to prevent the crashing.

Update: It seems it fixed when i uninstalled sys-clk old version and replaced with a newer one, at least it never crashed again so far.
 
Last edited by Arcansel,

FAKEdemicBioPYSCHONANOWAR

Well-Known Member
Member
Joined
Sep 26, 2021
Messages
207
Trophies
0
Age
35
XP
517
Country
Netherlands
With IPS patches no since FPSLocker patches are applied after loader initializes game, while IPS patches are applied before that.

With cheats there may be an issue if you would like to set for example 45FPS but you have enabled 60 FPS in cheats, then it may come to race condition where one value will be overwritten by other value, and since cheat engine state is refreshed every 10ms vs my plugin doing this only every second, cheat will always have a priority. So it's not recommended to run FPS cheat with this plugin IF FPSLocker patch already exists for your version.
I ran metroid dread and the 60 fps cheat was auto on if i remember correctly. Not sure if you can turn that off?!

What about romfs patches?
 

masagrator

The patches guy
Developer
Joined
Oct 14, 2018
Messages
6,278
Trophies
3
XP
12,043
Country
Poland
Not sure if you can turn that off?!
If you have in system_settings.ini enabled saving toggles, you can turn cheat off with f.e. Edizon Overlay.
And Metroid Dread is 60FPS by default btw.
What about romfs patches?
"romfs patches" don't exist. If you mean mods, they don't affect how FPSLocker works. FPSLocker can overwrite configs with patches (As an example my patch for Triangle Strategy overwrites "r.DynamicRes.FrameTimeBudget")
 
Last edited by masagrator,

Chrisssj2

Well-Known Member
Member
Joined
Feb 12, 2008
Messages
2,704
Trophies
1
XP
4,384
Country
Netherlands
If you have in system_settings.ini enabled saving toggles, you can turn cheat off with f.e. Edizon Overlay.
And Metroid Dread is 60FPS by default btw.

"romfs patches" don't exist. If you mean mods, they don't affect how FPSLocker works. FPSLocker can overwrite configs with patches (As an example my patch for Triangle Strategy overwrites "r.DynamicRes.FrameTimeBudget")
Well i got mutiple titleid folders which have the "exefs" folder in them. is that still IPS then?

I thought there used to be a download button here to download them all?
https://github.com/masagrator/NXGraphicsPatches
 

masagrator

The patches guy
Developer
Joined
Oct 14, 2018
Messages
6,278
Trophies
3
XP
12,043
Country
Poland
is that still IPS then?
No. It usually means you are using some skyline/exlaunch mods or you are using graphics mods from people that don't even bother to learn how to make IPS patches (for example Eclipse) so they patch main directly and upload patched main with mod.
 

Chrisssj2

Well-Known Member
Member
Joined
Feb 12, 2008
Messages
2,704
Trophies
1
XP
4,384
Country
Netherlands
No. It usually means you are using some skyline/exlaunch mods or you are using graphics mods from people that don't even bother to learn how to make IPS patches (for example Eclipse) so they patch main directly and upload patched main with mod.
In which case that wouldn't conflict either with fpslocker...?
 

masagrator

The patches guy
Developer
Joined
Oct 14, 2018
Messages
6,278
Trophies
3
XP
12,043
Country
Poland

Chrisssj2

Well-Known Member
Member
Joined
Feb 12, 2008
Messages
2,704
Trophies
1
XP
4,384
Country
Netherlands
No, it is limited by SaltyNX capabilities and how game locks FPS.

For compatible games that do use internal FPS locks - yes
Post automatically merged:


patched main - no.
exlaunch/skyline can.
How to tell the difference between patched main or skyline/exlaunch?
Post automatically merged:

Wish I could use it but constant crashes in tesla menu makes this impossible. and there is no homebrew version of it...
 
Last edited by Chrisssj2,

Bricked

Well-Known Member
Newcomer
Joined
Apr 5, 2022
Messages
60
Trophies
0
Location
Home
XP
236
Country
United States
Thanks masagrator for yet another great innovation. I can't tell you how much you've improved the homebrew experience with your tools over the years!
 
  • Like
Reactions: Henx

Soundtoxin

Member
Newcomer
Joined
Jan 4, 2014
Messages
21
Trophies
0
Age
27
Location
Minnesota
XP
174
Country
United States
Why it's FPSLocker and not FPS-UN-Locker?
My first thought when I saw the title was that it was for lowering the framerate to a new setting. I've heard of people doing that on their Steam Decks to 50 or 40fps so they could increase battery life. Sounds like it will be for doing both that and removing locks, which is nice.
 

GenNaz

Well-Known Member
Member
Joined
Feb 15, 2017
Messages
143
Trophies
0
Age
26
XP
1,000
Country
United States
My first thought when I saw the title was that it was for lowering the framerate to a new setting. I've heard of people doing that on their Steam Decks to 50 or 40fps so they could increase battery life. Sounds like it will be for doing both that and removing locks, which is nice.
Should be noted that this will only be useful for caping at 60 or 30 fps (or 15 if you're a masochist) because the Switch screen only operates at a 60hz refresh, unless you want a terribly juddery experience. 50 and 40 fps caps are viable on Deck because you can also change the refresh rate to whatever you want between 40hz and 60hz to match the cap.
 
  • Like
Reactions: Cooler3D

masagrator

The patches guy
Developer
Joined
Oct 14, 2018
Messages
6,278
Trophies
3
XP
12,043
Country
Poland
unless you want a terribly juddery experience
Most Switch games have terrible juddery experience already without any mod. :rofl: You're overestimating people's ability to see such issues without any graph on top of screen. Many Steam Deck users are PC enthusiasts so of course there is higher percentage of its users to see such issues in comparison to Switch users.
At least you will get consistent framepacing issues so you can get used to them instead of inconsistent. :ph34r:

or 15 if you're a masochist)
You forgot about 20. :P

only operates at a 60hz refresh
You can technically change it, but it seems to be not possible to do it in runtime (all functions supposedly allowing to change it don't work), you must patch pcv.
 
Last edited by masagrator,

SerpentStomper

Member
Newcomer
Joined
Jul 28, 2023
Messages
5
Trophies
0
Age
62
XP
27
Country
United States
Hey guys how would I get this working on Ryujinx? My Skyrim is a pretty rock solid 60fps but movement will get a stutter especially in first person.
 

SerpentStomper

Member
Newcomer
Joined
Jul 28, 2023
Messages
5
Trophies
0
Age
62
XP
27
Country
United States
You don't.
Ah okay. I thought since a game can be tricked into thinking it’s on a Switch, then any other program should be able to as well.

I just disabled dynamic resolution last night in my ini file and game seems good now. I guess these hacks are just for a Switch since it’s can’t hold a solid 60fps so something with Vsync changes everytime DR changes? Was super frustrating because everything was good but my feet lol. The movement was stuttering or something weird in first person. That’s Skyrim for you I guess, pandora box mods this thing.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    OctoAori20 @ OctoAori20: Nice nice-